2017-08-17 98 views
1

好的,我會將其縮短。將每個單詞的第一個字母移到末尾並添加一個字符,條件爲

這是我的代碼

String s = edittextkata.getText().toString(); 
      String[] vowels = {"a","e","i","o","u","A","I","U","E","O"}; 
      String firstLetter; 
      if (s.equals("")) { 
       Toast.makeText(getApplicationContext(), "EMPTY, CAN NOT ENCRYPT!", Toast.LENGTH_SHORT).show(); 
      } else if (s.contains(" ")) { 
       String[] wordArray = s.split(" "); 
       firstLetter=""; 
       StringBuilder sb = new StringBuilder(" "); 
       outerloop: 
       for(String word:wordArray){ 
        for(int i=0;i<word.length();i++){ 
         if(word != null){ 
         String words=wordArray[i].trim(); 
         firstLetter+=(words.charAt(0)); 
         input+=words.substring(1); 
         if(wordArray[i].startsWith(vowels[i])) 
         { 
          hasil=input+firstLetter+"IN"+" "; 
          sb.append(hasil); 
          i++; 
          continue outerloop; 
         } else{ 
          hasil=input+firstLetter+"AN"+" "; 
          sb.append(hasil); 
          i++; 
          continue outerloop; 
         }} 
        }break outerloop; 
       } 
       sb.toString(); // Re-join string 
       edittexthasil.setText(sb); 
      } else { 
       int i=0; 
       firstLetter=""; 
       if(s.startsWith(vowels[i])){ 
        firstLetter += s.charAt(0); 
        input = s.substring(1); 
        hasil = input + firstLetter + "IN"; 
        edittexthasil.setText(hasil.toString()); 
       } else { 
        firstLetter += s.charAt(0); 
        input = s.substring(1); 
        hasil += input + firstLetter + "AN"; 
        edittexthasil.setText(hasil.toString()); 
       } edittexthasil.setText(hasil.toString()); 
      } 

我的問題是

我的輸入爲 「世界你好

但爲什麼我的輸出爲 「nullellohAN nullelloellohhAN」,

and wh恩我點擊一次按鈕輸出成爲「nullelloellohhAN nullelloelloelloellohhAN

爲什麼世界部分來自世界你好沒有顯示?只是你好的一部分。

爲什麼太多null?

爲什麼每次點擊butto時都會改變?我希望輸入保持原樣(「ellohAN orldwan」),除非輸入文本被更改。

Theres沒有錯誤Logcat,這就是爲什麼我很困惑。幫幫我〜

+7

這是太多的代碼來閱讀......你可以只發布相關的部分? –

+0

完成,對不起, – Adara7

+2

您的互聯網提供商是否收取信件?請填寫年月日。 –

回答

0

這是一些面試任務嗎?我建議你更注重代碼質量,而不僅僅是最終的結果。關於你列出的錯誤 - 我看到你想分配一個字符串String數組:

String[] characterArray = word; 

或數組創建一個字符串:

wordArray[i] = new String(characterArray); 

這兩者都是非法的語句。其他類似。

嘗試使用IDE(如Eclipse或IDEA),它會在現場向您顯示這些錯誤,並提供如何解決這些錯誤的建議。另外,如果我是你,我會重新思考邏輯並重寫代碼:)。

+0

其他事情:使用String.equals()檢查相等性不要使用==或!=。變量也只在範圍內有效。換句話說,你不能在{和}塊之外看到它們。我正在編輯你的代碼,但你需要學習基礎知識。 – Dakoda

+0

...或者...運行你的代碼並調試它? :) –

+0

是的,我應該,但我仍然在學習。來自與此類似的另一話題的其他答覆/評論。但。 。我的大腦顯然沒有抓住這一點。我只是抓住一切,我認爲是代碼。 。我需要時間去了解。但是之後。我得到了9小時後的截止日期。所以。 。 。 – Adara7

相關問題