【问题标题】:Count indexOf characters from String variable从字符串变量中计算 indexOf 个字符
【发布时间】:2018-10-07 04:00:06
【问题描述】:

我目前正在做一个 Java 练习。我正在尝试计算String 变量中的字符实例,该变量使用JOptionPane 输入并使用indexOf 进行计数。到目前为止我有这个,但它不起作用,因为在测试中计数返回的该字符类型的字母数量错误。

String input_text;     
input_text = JOptionPane.showInputDialog("Write in some text");
System.out.println("Index of e in input_text: "+input_text.indexOf('e'));

然后用户需要猜测他们写的字符串中正确的字母数量。我为此尝试了各种方法,但被卡住了。

【问题讨论】:

  • 你知道indexOf是做什么的吗?
  • 你希望字符串“java_exercise”的“e”索引是多少?
  • 写一个循环,比较String中的每个字符,看是否匹配你要找的字符。
  • 1) 为了尽快获得更好的帮助,请发帖 minimal reproducible exampleShort, Self Contained, Correct Example。硬编码String 进行测试。选项窗格无关紧要。 2) 输入String 是什么?你期望的输出是什么?你为什么这么期待?实际输出与预期有何不同?
  • 选项窗格非常相关,因为用户需要通过某种界面输入字符串。这是练习所必需的。Indexof 在这里不起作用,因为它旨在找出指定字符的索引,而不是字符出现的总次数。我目前没有在这里有用的代码示例。因此我的问题是一些例子,所以我可以解决这个问题。

标签: java string variables indexof


【解决方案1】:

String indexOf 函数在此处无法解决您的问题,因为它旨在为您提供所需子字符串(在本例中为特定字符)第一次出现的索引。

您需要遍历字符串中的字符并计算与特定字符匹配的次数。

String input_text;     
input_text = JOptionPane.showInputDialog("Write in some text");
System.out.println("Index of e in input_text: "+ getMatchCount(input_text, 'e'));

int getMatchCount(String input, char charToMatch) {
    int count = 0;
    for(int i = 0; i < input.length(); i++) {
        if(input.charAt(i) == charToMatch) {
            count++;
        }
    }
    return count;
} 

您也可以直接使用 Apache Commons StringUtils 的 countMatches 函数。

此外,如果您打算在输入字符串中查找多个(不同)字符的计数,您可以为输入字符串中存在的每个字符创建一个出现计数映射,这样您就不需要当询问不同字符的匹配计数时,一次又一次地遍历整个字符串。

【讨论】:

    【解决方案2】:

    感谢这里的所有 cmets,我已经设法解决了这样的字符循环

    public static void main(String[] args) {
      String s1="this is a sentence";
        char ch=s1.charAt(s1.indexOf('e'));
        int count = 0; 
        for(int i=0;i<s1.length();i++) {
            if(s1.charAt(i)=='e'){
                count++;
            }
        }
        System.out.println("Total count of e:=="+count);
    }
    

    }

    我现在将尝试添加 JOptionPane 组件 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      相关资源
      最近更新 更多