你们能告诉我count[word.charAt(i)]++
在此代码和overall--
中到底是做什么的吗?
public static void main(String[] args) {
String S = "Some random text to test.";
int count[] = new int[124];
for (int i=0; i< S.length(); i++) {
count[S.charAt(i)]++;
System.out.print(count[S.charAt(i)] + " ");
}
int max = 1;
char result = ' ';
for (int i = 0; i < S.length(); i++) {
if (max < count[S.charAt(i)] && S.charAt(i) != ' ') {
max = count[S.charAt(i)];
result = S.charAt(i);
}
}
System.out.println(result);
}
count[S.charAt(i)]
的印刷只是我试图解决的问题。
答案 0 :(得分:0)
S.charAt(i)
返回该字符串 S 中i-th
位置的字符。
然后count[S.charAt(i)]
将像这样执行。假设您得到“ S”作为字符。那么'S'的字符值将为83。因此,它将采用 count数组中的83索引元素并将其递增1。
答案 1 :(得分:0)
word.charAt(i)
返回字符串word
中第 i个索引处的字符。
count
是一个int
数组,具有自动全零:int count[] = new int[124];
count[i]++
将索引{strong> i 中count
中的值增加1。
在这里,您正在传递word.charAt(i)
作为索引,即count[word.charAt(i)]++
,它的作用是:
-首先评估word.charAt(i)
,但
请注意,索引我必须是整数!
因此会自动获取字符的 ASCII 值。例如('a'= 97,'b'= 98 ..)
-然后count[ASCII number returned]++
(例如count[97]++
)将递增,现在count[97] = 1
但是请注意,如果您的 String 具有'}',则会出现索引超出范围例外,因为其 ASCII 值为125 ;和125 > 124
计数大小!