3 回答

TA貢獻1805條經驗 獲得超10個贊
第三個詞后你需要休息一下。一種選擇是創建一個額外的變量來跟蹤它并在字符為空格時遞增它。3 個詞后,您可以打破循環。
其他選擇是使用方法將字符串拆分為單詞split()
,并僅迭代前 3 個。

TA貢獻1785條經驗 獲得超4個贊
我從用戶那里得到了 3 個字符串作為輸入。然后計算每個單詞中的元音并打印如下。如果元音計數 = 0 和 1,則打印 0。如果元音計數 = 2,則打印 2。如果元音計數更大大于或等于 3 然后打印 3。我試過這段代碼。
Scanner in = new Scanner(System.in);
String[] str = new String[3];
for (int i = 0; i<3; i++)
str[i] = in .nextLine();
for (int j = 0; j<3; j++) {
String s1 = str[j];
String s = s1.toLowerCase();
int count = 0;
for (int i = 0; i<s.length(); i++)
{
if (s.charAt(i) == 'a' || s.charAt(i) == 'e' || s.charAt(i) == 'i' || s.charAt(i) == 'o' || s.charAt(i) == 'u') {
count++;
}
if (s.charAt(i) == ' ') {
if (count == 0||count == 1) {
System.out.print("0");
} else if (count == 2) {
System.out.print("1");
} else {
System.out.print("3");
}
count = 0;
}
}
if (count == 0||count == 1) {
System.out.println("0");
} else if (count == 2) {
System.out.println("1");
} else {
System.out.println("3");
}
}
但是有一個條件只打印 3 個單詞的元音計數,即使用戶輸入的字符串超過 3 個單詞。例如,如果用戶給出字符串“hi hello all, how are you, I am fine and u”它僅像這樣打印“010 011 001”,但此代碼打印為“010 011 00100”。現在我如何更改代碼以僅打印 3 個單詞而不是超過 3 個單詞的元音計數?

TA貢獻1951條經驗 獲得超3個贊
您可以使用正則表達式將單詞拆分成一個句子,方法如下:
String[] splits = myPhrase.split(" ");
拆分句子中的單詞,但您必須小心,如果用戶輸入更多空格,第一個空格將被“消除”,而緊隨其后的空格將被拆分。例如:
String phrase = "1 2 3 z"; String[] splits = phrase.split(" ");
生成此數組:[1|2| |3| | |z]
.
因此,在我看來,此時您可以使用過濾器,再次遍歷數組/列表以消除從正則表達式派生的任何空間,或者更簡單地說,當您滾動數組/列表并找到您不考慮的空間時. 此時去分析數組/列表的前 3 個元素,丟棄其他元素(可能使用計數器)。
最后,再次使用正則表達式,您還可以使用以下命令檢查您正在分析的字符是否為元音字母:
if (s.charAt(i).matches("[AEIOUaeiou]")){ /*it's a vowel*/}
添加回答
舉報