将每个单词的第一个字母移到最后并添加带条件的字符

时间:2017-08-17 14:31:55

标签: java android string

好的,我会缩短它。

这是我的代码

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());
            }

我的问题是

我的输入是&#34; hello world &#34;

但为什么我的输出是&#34; nullellohAN nullelloellohhAN &#34;,

当我再次点击按钮时,输出变为&#34; nullelloellohhAN nullelloelloelloellohhAN &#34;

为什么来自hello world的世界部分没有表现出来?只是你好。

为什么太多了?

为什么每次点击按钮都会改变?我希望输入保持这样(&#34; ellohAN orldwAN &#34;),除非更改输入文本。

Logcat没有错误,这就是为什么我感到困惑。帮帮我〜

1 个答案:

答案 0 :(得分:0)

这是一些面试任务吗?我建议你更多地关注代码质量,而不仅仅是最终结果。关于你列出的错误 - 我看到你正在尝试将String分配给String数组:

String[] characterArray = word;

或从数组中创建一个String:

wordArray[i] = new String(characterArray);

这两者都是非法陈述。其他类似的。

尝试使用IDE(如Eclipse或IDEA),它会在现场向您显示这些错误,并提供有关如何解决这些错误的建议。 另外,如果我是你,我会重新考虑逻辑并从头开始重写代码:)。