亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算字符串中的元音

計算字符串中的元音

牛魔王的故事 2023-02-16 15:52:16
我從用戶那里得到了 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 個單詞的元音計數?爪哇
查看完整描述

3 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

第三個詞后你需要休息一下。一種選擇是創建一個額外的變量來跟蹤它并在字符為空格時遞增它。3 個詞后,您可以打破循環。

其他選擇是使用方法將字符串拆分為單詞split(),并僅迭代前 3 個。


查看完整回答
反對 回復 2023-02-16
?
九州編程

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 個單詞的元音計數?


查看完整回答
反對 回復 2023-02-16
?
飲歌長嘯

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*/}


查看完整回答
反對 回復 2023-02-16
  • 3 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號