java - 我想显示字符串中某个字符的出现。如何改进我的代码?

标签 java string count find-occurrences

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

3年前关闭。




Improve this question




我想创建一个程序来显示字符串中字符的出现次数并计算它们。现在代码只计算字符。

我想进行以下更改:

1) 如何让这个程序只计算一种字符,如 ac在字符串中 I love ice cream .

2) 我如何也打印字符串中的字符,假设有两个 d然后我的程序将显示 2 d第一的。

3) 对于Scanner input = new Scanner(System.in);部分我在我的 Eclipse 中遇到错误,说扫描仪无法解析为一种类型。

也可以随意评论代码中需要改进的任何内容。基本上只需要一个简单的程序来显示字符串中的所有 C,然后计算字符串的出现次数。然后我想自己弄乱代码,更改它以便我可以学习 Java。

所以这是我到目前为止的代码:

public class Count { 
    static final int MAX_CHAR = 256; //is this part even needed?

    public static void countString(String str) 
    { 
        // Create an array of size 256 i.e. ASCII_SIZE 
        int count[] = new int[MAX_CHAR]; 

        int length = str.length(); 

        // Initialize count array index 
        for (int i = 0; i < length; i++) 
            count[str.charAt(i)]++; 

        // Create an array of given String size 
        char ch[] = new char[str.length()]; 
        for (int i = 0; i < length; i++) { 
            ch[i] = str.charAt(i); 
            int find = 0; 
            for (int j = 0; j <= i; j++) { 

                // If any matches found 
                if (str.charAt(i) == ch[j])  
                    find++;                 
            } 

            if (find == 1)  
                System.out.println("Number of Occurrence of " + 
                 str.charAt(i) + " is:" + count[str.charAt(i)]);             
        } 
    } 
    public static void main(String[] args) { 
        Scanner input = new Scanner(System.in); 
        String str = "geeksforgeeks"; 
        countString(str); 
    } 
} 

最佳答案

试试这个

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    String str = input.nextLine();

    // Whatever is the input it take the first character.
    char searchKey = input.nextLine().charAt(0);
    countString(str, searchKey);
}

public static void countString(String str, char searchKey) {
    // The count show both number and size of occurrence of searchKey
    String count = ""; 
    for (int i = 0; i < str.length(); i++) {
        if (str.charAt(i) == searchKey)
            count += str.charAt(i) + "\n";
    }
    System.out.println(count + "\nNumber of Occurrence of "
                    + searchKey + " is " + count.length() + " in string " + str);
}

关于java - 我想显示字符串中某个字符的出现。如何改进我的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52350940/

相关文章:

java - 如何使用带有 java 文件的 HWUT 单元测试工具

java - 将正则表达式 ruby​​ 转换为 java

java - Java中的字符串内存分配

mysql - 如何在SQL中选择与表中所有属性匹配的项目?

java - JAR到EXE转换器?

java - (Java)初始化后打印井字游戏板

java - Volley 响应字符串在 if 语句中没有正确比较

ios - 如何从 objective-c 中的数组中获取当前字符串值

php - MySQL计数连接字段

r - 通过安排添加计数器列两个变量(dplyr)