Java 字符的出现
我试图忽略字符串字母表中没有的字符,但出于某种原因,eclipse抱怨无法解析变量I 这是我的密码: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
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而不是字符(假设我在上一篇评论中不清楚)。