java - 将每个单词的第一个字母移动到末尾并添加一个字符,有条件

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

我的问题是

我的输入是“ Hello World

但是为什么我的输出是“nullellohAN nullellohellohhAN”,

当我再次单击该按钮时,输出变为“nullelloelloellohhAN nullelloelloelloellohhAN

为什么 hello world 的 world 部分没有显示?只是你好部分。

为什么有太多空值?

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

Logcat 上没有错误,这就是我感到困惑的原因。帮帮我吧~

最佳答案

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

String[] characterArray = word;

或从数组创建字符串:

wordArray[i] = new String(characterArray);

这都是非法语句。其他类似。

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

关于java - 将每个单词的第一个字母移动到末尾并添加一个字符,有条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45737964/

相关文章:

java - 在另一个类 TextView 中显示 Spinner 所选项目

java - NullPointerException 可能与 DataSource 连接有关

android - 如果使用 openFileOutput,则获取文件

android - 在 Android 上测试与服务器的连接

ruby - Ruby String#dump 方法的逆向

java - 使用 Spring 自动配置自定义 @Qualifier

java - rich :column and rich:columns有什么区别

Android Studio 从 Activity 中更改 TextView fragment

regex - Bash:提取文件名的数量以移动到编号正确的目录中

c - 坚持比较 C 中的字符串