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

相关问题