java - 读取用户输入时如何使用 boolean 变量

标签 java for-loop if-statement boolean user-input

在我的代码中,我正在创建一个窗口,用户可以在其中输入短语。然后,我设置一个 for 循环来读取输入并在任何元音之前添加 ub 。我现在的问题是,如果用户输入是 aeiou,我想要的输出是 ubaeiou 而不是 ubaubeubiuboubu。我相信 boolean 变量会有帮助,但我不知道如何完成这部分。

public void buttonPressed() {

    String line = input1.getText(); 
    String finline;
    finline = "";
    line = line.toLowerCase();

    for(int i =0; i < line.length(); i++) {
        if((line.charAt(i) == 'a') || (line.charAt(i) == 'e') || (line.charAt(i)     == 'i') || (line.charAt(i) == 'o') || (line.charAt(i) == 'u')) 
         {
          finline = finline + "ub" + line.charAt(i);
         }

        else 
         {
          finline = finline + line.charAt(i);
         }
    }
    output.setText(finline);
}

User input = aeiou

Output = ubaubeubiuboubu

Desired output = ubaeiou

最佳答案

您想要 LINE 的第一个元音上有“ub”前缀吗?然后使用 boolean 值触发早期循环退出。

public void buttonPressed() {

    Boolean done = false;
    String line = input1.getText(); 
    String finline;
    finline = "";
    line = line.toLowerCase();

    for(int i =0; i < line.length() && !done; i++) {
        if((line.charAt(i) == 'a') || (line.charAt(i) == 'e') || (line.charAt(i)     == 'i') || (line.charAt(i) == 'o') || (line.charAt(i) == 'u')) 
         {
          finline = finline + "ub" + line.charAt(i);
          done = true;
         }

        else 
         {
          finline = finline + line.charAt(i);
         }
    }
    output.setText(finline);
}

或者,如果您希望它出现在每个单词的第一个元音上,则需要将 boolean 值应用到元音检查条件中,并确保它在单词中断时关闭。

public void buttonPressed() {

    Boolean checkVowel = true;
    String line = input1.getText(); 
    String finline;
    finline = "";
    line = line.toLowerCase();

    for(int i =0; i < line.length(); i++) {
        if(checkVowel && ((line.charAt(i) == 'a') || (line.charAt(i) == 'e') || (line.charAt(i) == 'i') || (line.charAt(i) == 'o') || (line.charAt(i) == 'u'))) 
         {
          finline = finline + "ub" + line.charAt(i);
          checkVowel = false;
         }

        else 
         {
          finline = finline + line.charAt(i);
          if (line.charAt(i) == ' ') checkVowel = true;
         }
    }
    output.setText(finline);
}

关于java - 读取用户输入时如何使用 boolean 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58403336/

相关文章:

java - 如果没有私钥,jsch 身份验证失败

java - web.xml中如何指定LifeCycle Listener监听器类?

java - Jython Swing : Randomly Occurring Java ImageIO IOException

c++ - 检查二维 vector 的每个元素是否匹配

javascript - Javascript 中的 for 循环不一致/被忽略?

javascript - 使用 JavaScript 进行可见性检查不起作用

java - JList 自定义选择行为 - 包括从单击的项目到列表末尾的所有内容

python - 如何动态更新Python循环中参数的值?

c - 在 if 语句中声明数组

r - 在 R 中使用 if else 为 for 语句的每次迭代保存值