count[s1.charAt(i) - 'a'] 在以下 for 回圈中做什么?我看到這里回答了類似的問題,但我仍然感到困惑。我以前從未見過這種語法,也找不到很多關于它的資訊。
String s1 = "abcd";
int[] count = new int[26];
for (int i = 0; i < len1; i ) {
count[s1.charAt(i) - 'a'] ;
}
uj5u.com熱心網友回復:
讓我們count[s1.charAt(i) - 'a'] ;從內到外檢查運算式。
s1.charAt(i)是字串i第 th 位的s1字符。由于字母是連續的,因此a從該字符中減去會將其轉換為count陣列中的索引(a變成0、b變成1等)。然后,下標運算子[]用于參考陣列中的該索引。最后, 用于增加該索引中陣列的值。
如果我們把它們放在一起 -count是字串中每個字符的計數器陣列。回圈遍歷字串中的字符,并為每個字符遞增相應的計數器,因此完成后,陣列將保存其中每個字符的計數。
uj5u.com熱心網友回復:
它將字符映射到索引。您可以對字符進行算術運算。它們的值是 ASCII 碼 (int)。 ASCII碼
'a' - 'a' is 0. Same as 93-93 is 0.
'b' - 'a' is 1. Same as 94-93 is 1.
String s1 = "abcd";
int[] count = new int[26];
for (int i = 0; i < len1; i ) {
int index = s1.charAt(i) - 'a';
count[index] ;
}
count[s1.charAt(i) - 'a'] 增加計算索引處的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/383712.html
