Java 字符的出现

Java 字符的出现,java,string,counter,indexof,Java,String,Counter,Indexof,我试图忽略字符串字母表中没有的字符,但出于某种原因,eclipse抱怨无法解析变量I 这是我的密码: import java.util.Scanner; 公共类字符的出现{ static final int ASCII_SIZE = 256; static char getMaxOccuringChar(String str) { // Create array to keep the count of individual // characters and init

我试图忽略字符串字母表中没有的字符,但出于某种原因,eclipse抱怨无法解析变量I

这是我的密码:

import java.util.Scanner;
公共类字符的出现{

static final int ASCII_SIZE = 256; 
static char getMaxOccuringChar(String str) 
{ 
    // Create array to keep the count of individual 
    // characters and initialize the array as 0 
    int count[] = new int[ASCII_SIZE]; 
    String alphabet = "abcdefghijklmnopqrstuvwxyz";
    int charCheck;
    // Construct character count array from the input 
    // string. 
    int len = str.length(); 
    for (int i=0; i<len; i++) 
        charCheck = alphabet.indexOf(str.charAt(i));
        if(charCheck != -1) {
            count[str.charAt(i)]++;  //Problem occurs here 
        }
    int max = -1;  // Initialize max count 
    char result = ' ';   // Initialize result 

    // Traversing through the string and maintaining 
    // the count of each character 
    for (int i = 0; i < len; i++) { 
        if (max < count[str.charAt(i)]) { 
            max = count[str.charAt(i)]; 
            result = str.charAt(i); 
        } 
    } 

    return result; 
} 


public static void main(String[] args) 
{ 
    @SuppressWarnings("resource")
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter your Text: ");
    String str = sc.nextLine(); 
    str =  str.replaceAll("\\s","").toLowerCase();
    System.out.println("Max. character is " + 
                        getMaxOccuringChar(str)); 
} 
static final int ASCII\u SIZE=256;
静态字符getMaxOccuringChar(字符串str)
{ 
//创建数组以保留单个
//并将数组初始化为0
整数计数[]=新整数[ASCII_大小];
字符串字母表=“abcdefghijklmnopqrstuvxyz”;
int-charCheck;
//从输入构造字符计数数组
//绳子。
int len=str.length();

for(int i=0;i问题在于循环。这来自您的代码。请注意,
i
是for循环的本地部分,但您没有使用{},因此在以后使用它帮助索引
计数时不会看到它

for(int i=0;i
尝试打印
(int)str.charAt(i)
。使用Eclipse时,请将保存操作配置为自动缩进代码。然后,您将立即看到有问题的语句已退出循环。这是一个问题。是的。没有将字符转换为int。但是如果我将结果从char转换为int并返回int,是否会出现错误,因为该方法是char,并且返回一个intint@Kir另一个问题是使用<代码> char <代码>作为<代码>索引<代码>。因此考虑字符“1”。该整数值是十进制<代码> 49 <代码>,因为它是一个字符。建议通过<代码>安迪·特纳<代码>将其打印出来,以显示实际值,而不是只显示字符的字符。w是一个数字。在您的情况下,您需要将“1”转换为1以将其用作索引。其他数字也是如此。@Kirby_Sike顺便说一句,字符值被视为int,可以作为int进行操作。强制转换主要用于将其显示为int而不是字符(假设我在上一篇评论中不清楚)。