在我的代码中,我正在创建一个窗口,用户可以在其中输入短语。然后,我将设置一个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
答案 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