Java 如何在循环结束时退出for循环,并在不求和的情况下输入新的for循环

Java 如何在循环结束时退出for循环,并在不求和的情况下输入新的for循环,java,arrays,methods,Java,Arrays,Methods,这是我的密码。我得数一数我课文中字母的频率。 我得到的结果是: a 21 b 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

这是我的密码。我得数一数我课文中字母的频率。 我得到的结果是: a 21 b 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;
int[]字母数组=新的int[26];
//char varA='a';
alphabetArray[0]=A``
整数计数=0;
for(int i=0;i
您初始化了count=0一次,并且在不重新初始化的情况下将其增加到0

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;
count=0;
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;
count=0;
for (int i = 0; i < text.length; i++) {
    if (text[i] == C) {
        count++;    
     }
}
System.out.println((char) alphabetArray[2] + " kommt " + count + " Mal");

return null;
int[]字母数组=新的int[26];
//char varA='a';
alphabetArray[0]=A``
整数计数=0;
for(int i=0;i
您初始化了count=0一次,并且在不重新初始化的情况下将其增加到0

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;
count=0;
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;
count=0;
for (int i = 0; i < text.length; i++) {
    if (text[i] == C) {
        count++;    
     }
}
System.out.println((char) alphabetArray[2] + " kommt " + count + " Mal");

return null;
int[]字母数组=新的int[26];
//char varA='a';
alphabetArray[0]=A``
整数计数=0;
for(int i=0;i
尽管打印后可以通过将
计数归零来解决问题,但如果循环本身重复三次,程序将不理想。当您看到这样的模式时,这表明您需要另一个循环

在当前循环之外创建一个循环,遍历从
'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]++;
        }
    }
}

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

在当前循环之外创建一个循环,遍历从
'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]++;
        }
    }
}

用于(char letter='A';letter您应该在每个打印语句之后将
count
设置为
0
。那么您介意我必须在每个循环中声明count吗?您应该在每个打印语句之后将
count
设置为
0
。那么您介意我必须在每个循环中声明count吗?非常感谢!现在一切正常!如果我想这样做,还有任何提示吗切换为?因为循环可能会很长,直到字母Z!您只需计算特定字符串中字符的出现次数。一种方法是创建一个大小为26的整数数组,每当找到字符时,将其递增,最后将获得每个字符的出现次数。但如果您需要特定的字符,请使用哈希将字符串映射为键,将整数映射为值,因此无论何时找到,只要将其放入其中,如果它存在,只需增加计数。如果这有助于将其标记为答案,以便其他人可以轻松引用。使用hasmap是一个好主意,我只想不使用它,但如果我没有其他解决方案,我会这样做:)当然,您应该始终尝试自己解决问题:)非常感谢,它现在可以工作了!如果我想改为使用switch,有什么提示吗?因为循环可能会很长,直到字母Z!您只需要计算特定字符串中出现的字符数。一种方法是创建一个大小为26的int数组,每当您找到字符时,它就会递增,最后您将得到ev的出现每个字符。但是如果你想要一个特定的字符,那么使用字符串的hashmap作为键,整数作为值,所以只要你找到它,就把它放入其中,如果它存在,就增加计数。如果这有助于将它标记为答案,以便其他人可以很容易地引用它。使用hashmap是一个好主意,我只想不使用它,但我想如果我没有其他的解决方案:)当然你应该一直试着自己解决这个问题:)只有一个问题:为什么letterIndex=字母-'A'?我不明白here@sitm变量
letter
表示字母的数字UNICODE代码点。字母
A
Z
的数字代码点是连续的数字。这意味着您可以从
字母
中减去具有最低代码点的字母的编号,以确定字母距离
A的距离。对于
B
您将得到