java - 使用 Scanner 在 for 循环中逐字母分析字符串(抛出 IndexOutOfBoundExceptions)

标签 java java.util.scanner

我需要计算字母在字符串中出现的频率。

为此,我考虑使用扫描仪对象,将字符串传递给它

Scanner s = new Scanner(String)

并使用 next() 方法通过 switch 语句分析每个字符。

我在这些板上进行了搜索并设计了以下内容:-

for (int i = 0; i < outputString.length(); i++) {
    Scanner s = new Scanner(outputString);
    char letter = s.next().charAt(i);
    switch (letter) {
    switch code;
}

当我正在分析的字符串包含除空格之外的任何内容(-_z1 等..)时,这似乎会起作用,这将导致程序抛出 String.IndexOutOfBoundException (4)。

还有什么我可以尝试的,或者我应该删除单词中的所有空格(即我正在考虑使用 for 循环创建一个新单词字符串来添加每个 string.charAt(i) != ' ')。

编辑:我忘了扫描仪在 for 循环中,我会把它拿出来。其次,不确定它是否会改变,但我试图计算字符串中字母表中每个字母出现的次数,而不仅仅是一种类型的字母。感谢您的评论!

提前致谢,

最佳答案

这是另一个问题中提供的解决此问题的替代方法。 (还不能发表评论......所以必须作为答案......) How to count frequency of characters in a string?

关于java - 使用 Scanner 在 for 循环中逐字母分析字符串(抛出 IndexOutOfBoundExceptions),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53250205/

相关文章:

java - 为什么使用 useDelimiter(Pattern 模式) 与 useDelimiter(String 模式)

java - 使用 Java 扫描器进行密码屏蔽

java - 连续输入(输入/扫描仪)两个相同的数字以打破循环 "while"Java

java - MapReduce 单元测试无法模拟 DistributedCache.getLocalCacheFiles

java - Jenkins 如何发现构建后插件的 config.jelly?

java - 在java中的正则表达式中使用点进行分割

java - java while循环后的执行流程

java - 网页重定向如何在此页面中工作?

java - Android套接字连接但无法写入

java - 扫描到字节[]?