计算字符串中字母的出现次数

时间:2013-10-25 05:42:03

标签: java for-loop

我从以前的建议中更新了我的代码,它只是阅读我的句子中的第一个单词,有关如何阅读整个句子的任何建议吗? (我必须使用for循环)

import java.util.Scanner;

public class CountCharacters {
public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    char letter;
    String sentence = "";
    System.out.println("Enter a character for which to search");
    letter = in.next().charAt(0);
    System.out.println("Enter the string to search");
    sentence = in.next();

    int count = 0;
    for (int i = 0; i < sentence.length(); i++) {
        char ch = sentence.charAt(i);
        if (ch == letter) {
            count ++;
        }
    }
    System.out.printf("There are %d occurrences of %s in %s", count,
            letter, sentence);

}
}

输出: 输入要搜索的字符 H 输入要搜索的字符串 你好,你好吗 hello中有1次出现h

2 个答案:

答案 0 :(得分:1)

这里有点棘手。您需要两个 readLines()

System.out.println("Enter a character for which to search");
letter = in.nextLine().charAt(0);
System.out.println("Enter the string to search");
sentence = in.nextLine();

Scanner.next()只读一个单词并且没有完成该行

// Assume input: "foo" [enter] "test this yourself!"
Scanner.next(); // "foo"
Scanner.nextLine(); // EMPTY STRING!
Scanner.nextLine(); // "test this yourself!"

答案 1 :(得分:1)

您的扫描仪只读取下一个字(in.next())。如果您想阅读整行,则应使用nextLine的方法Scanner

如果您希望用户输入多个值,则必须从该扫描仪中进行相应的读取(因此您还必须从询问用户的第一个问题的答案中读取换行符。)

我不会给你代码来修复这个问题,这只是一个指向正确方向的指针。如果您熟悉这些标准类,那将是非常好的。 Sun / Oracle在文档方面做得非常好。因此,第一眼看起来应始终位于您正在使用的类的Java Doc中。

以下是课程Scanner的文档。