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

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

輸出重復的次數與嘗試計算圖表時插入的字母一樣多

輸出重復的次數與嘗試計算圖表時插入的字母一樣多

九州編程 2021-08-25 15:23:02
private static void CountLetters(Scanner sc) {    System.out.println("Enter a string");    String s = sc.nextLine();    System.out.println("Enter a letter");    char c = sc.nextLine().charAt(0);    int res = 0;    for (int i = 0; i < s.length(); i++) {        if (s.charAt(i) == c)             res++;        System.out.println(res + " " + c + " i " + s);        }輸出重復的次數與字母一樣多。知道為什么以及如何解決它嗎?電流輸出示例:輸入字符串Hello world 輸入一個字母升0 l 在你好世界0 l 在你好世界1 l 在你好世界2 l 在你好世界2 l 在你好世界2 l 在你好世界2 l 在你好世界2 l 在你好世界2 l 在你好世界3 l 在你好世界3 l 在你好世界
查看完整描述

2 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

如果您不跟蹤代碼,則不應將輸出語句放入循環中:


int res = 0;

for (int i = 0; i < s.length(); i++)

{

    if (s.charAt(i) == c)

        res++;

}

System.out.print(res + " " + c + " in" + s);


查看完整回答
反對 回復 2021-08-25
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

因為您的打印語句存在于循環中,所以每次執行循環時它都會打印當前計數,從而為您提供多行/計數。將打印移到循環之外將確保它只在整個字符串被解析后執行一次:


private static void CountLetters(Scanner sc) {

        System.out.println("Enter a string");

        String s = sc.nextLine();


        System.out.println("Enter a letter");

        char c = sc.nextLine().charAt(0);


        int res = 0;

        for (int i = 0; i < s.length(); i++) {

            if (s.charAt(i) == c)

                res++;

        }

        // Moved print statement outside of the loop; changed "i" to "in".

        System.out.println(res + " " + c + " in" + s);

    }


查看完整回答
反對 回復 2021-08-25
  • 2 回答
  • 0 關注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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