gpt4 book ai didi

java - 如何在循环结束时退出for循环并进入新的而不进行求和

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:24 26 4
gpt4 key购买 nike

这是我的代码。我必须计算文本中字母的频率。我得到的输出:21b 28(应该是7)c 34(应该是6)

我认为我的问题是它使总和和我不想要它。

int[] alphabetArray = new int[26];    
// char varA = 'a';
alphabetArray[0] = A;``

int count = 0;
for (int i = 0; i < text.length; i++) {
if (text[i] == A) {
count++;
}
}
System.out.println((char) alphabetArray[0] + " kommt " + count + " Mal");

alphabetArray[1] = B;

for (int i = 0; i < text.length; i++) {
if (text[i] == B) {
count++;
}
}
System.out.println((char) alphabetArray[1] + " kommt " + count + " Mal");
alphabetArray[2] = C;
for (int i = 0; i < text.length; i++) {
if (text[i] == C) {
count++;
}
}
System.out.println((char) alphabetArray[2] + " kommt " + count + " Mal");

return null;

最佳答案

虽然您可以通过在打印后将计数清零来解决问题,但如果循环本身重复三次,您的程序将不太理想。当您看到这样的模式时,表明您需要另一个循环。

在当前循环之外创建一个循环,遍历从'A''Z'的字母。由于 UNICODE 中字母的代码点是连续的,因此您可以通过减去 'A' 来找到字母的索引:

for (char letter = 'A' ; letter <= 'Z' ; letter++) {
int letterIndex = letter - 'A';
for (int i = 0; i < text.length; i++) {
if (text[i] == letter) {
alphabetArray[letterIndex]++;
}
}
}

请注意,由于您正在累积所有字母的计数,因此不需要单独的 count 变量,因为 alphabetArray[letterIndex] 会替换它。如果您想随时打印字母频率,请在嵌套循环后打印 alphabetArray[letterIndex]

关于java - 如何在循环结束时退出for循环并进入新的而不进行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36887349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com