2017-08-13 213 views
-5

/刪除每一個第N個字符我使用過Android Studio來作一個簡單的應用程序。刪除字符串

實施例:

n = 3時,那麼我應該刪除每第三個字符(它不是一個常量,但從輸入)

I LOVE計算器 ----->我OV SACOVRFOW

我用https://stackoverflow.com/a/41813029的方法,因爲主題是相似的(當另一個不是)。

buttonprocess.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     String s = edittextkata.getText().toString(); 
     String kunci = editkey.getText().toString(); 

     if (s.equals("")) { 
      Toast.makeText(getApplicationContext(), "CAN NOT ENCRYPT! Plaintext is empty.", Toast.LENGTH_SHORT).show(); 
     } else if (kunci.equals("")) { 
      Toast.makeText(getApplicationContext(), "CAN NOT ENCRYPT! KEY is empty", Toast.LENGTH_SHORT).show(); 
     } else { 
      int k = Integer.parseInt(editkey.getText().toString()); 
      String str = edittextkata.getText().toString(); 

      if (k < 1) { 
       throw new IllegalArgumentException("k must be greater than 0"); 
      } 
      StringBuilder result = new StringBuilder(); 

      int previous = 0; 
      for (int i = k - 1; i < str.length(); i += k) { 
       result.append(str, previous, i); 
       previous = i + 1; 
      } 
      result.append(str, previous, str.length()); 
      return result.toString(); 

      //Show the result to edittext 
      edittexthasil.setText(result); 
     } 

但他的代碼是錯誤

錯誤:(66,43)錯誤:不兼容的類型:意外的返回值

其實輸出應該是

我OV SACOVRFOW & LETKEL

但是,我IDK的如何。我有期限*哭泣。幫幫我!

注:原諒我的語法。

+4

你不能從一個'void'方法返回一個值。 – shmosel

+0

你認爲'return result.toString()'在做什麼,你爲什麼這麼認爲?考慮這一點:1)方法被聲明爲返回'void',那麼返回的是什麼? 2)'return'語句後面跟着一個'edittexthasil.setText(result)'語句。那將如何執行'return'語句呢? ---刪除'return'語句。 – Andreas

+0

天啊!非常感謝。現在我想到了。 。 。我應該仔細檢查它之前從其他代碼copasting。對不起,我是編程的新手。 – Adara7

回答

1

替換這些行:

return result.toString(); 

//Show the result to edittext 
edittexthasil.setText(result); 

有:

//Show the result to edittext 
edittexthasil.setText(result.toString()); 
+0

謝謝〜它現在的工作 – Adara7

+0

請將此答案標記爲已接受,如果它對您有幫助,謝謝。 – AhmedAbdelaal