读取用户输入内容时如何使用布尔变量

时间:2019-10-15 22:23:26

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

在我的代码中,我正在创建一个窗口,用户可以在其中输入短语。然后,我将设置一个for循环以读取输入内容,并在任何元音之前添加@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK && data != null) { Bitmap photo = (Bitmap) data.getExtras().get("data"); imageView.setImageBitmap(photo); } super.onActivityResult(requestCode, resultCode, data); } 。我现在的问题是,如果用户输入为ub,则我想要的输出为aeiou,而不是ubaeiou。我相信布尔变量会有所帮助,但我仍然坚持如何做这部分。

ubaubeubiuboubu
  

用户输入= aeiou

     

输出= ubaubeubiuboubu

     

所需的输出= ubaeiou

2 个答案:

答案 0 :(得分:0)

您要在LINE的第一个元音中使用“ ub”前缀吗?然后使用布尔值触发早期循环退出。

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

或者如果您希望在每个单词的第一个元音中使用它,则需要将布尔值用于元音检查条件,并确保在断字时将其关闭。

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

答案 1 :(得分:0)

尝试一下:

    String line = "aeiou";
    String finline;
    finline = "";
    line = line.toLowerCase();
    Boolean flag = true;
    for (int i = 0; i < line.length(); i++) {
        Boolean flagLine = (line.charAt(i) == 'a') || (line.charAt(i) == 'e') || (line.charAt(i) == 'i') || (line.charAt(i) == 'o')
                || (line.charAt(i) == 'u');
        if (flag && flagLine) {
            finline = finline + "ub" + String.valueOf(line.charAt(i));
            flag = false;
        }

        else {
            if(!flagLine) flag = true;
            finline = finline + String.valueOf(line.charAt(i));
        }
    }
    System.out.println(finline);

输入= aeiou 输出= ubaeiou

输入= aeqou 输出= ubaequbou