目前我正在学习Java,当我从我的学习材料运行示例代码我“在线程异常‘主要得到一个’java.lang.ArrayIndexOutOfBoundsException:26”
package com.java24hours;
public class Wheel {
public static void main(String[] arguments) {
String phrase[] = {
"A STITCH IN TIME SAVES NINE",
"DON'T EAT YELLOW SNOW",
"EVERY GOOD BOY DOES FINE",
"I WANT MY MVT",
"PLAY IT AGAIN, SAM",
"FROSTY THE SNOWMAN",
"ONE MORE FOR THE ROAD",
"HOME FIELD ADVANTAGE",
"SHEFFIELD WEDNESDAY",
"GOVER CLEAVLAND OHIO",
"ZELDA: MAJORAS MASK",
"SPEGHETTI WESTERN",
"TEEN TITANS GO",
"IT'S A WONDERFUL LIFE",
};
int [] letterCount = new int [26];
for(int count = 0; count < phrase.length; count++) {
String current = phrase[count];
char[] letters = current.toCharArray();
for(int count2 = 0; count2 < letters.length; count2++) {
char lett = letters[count2];
if ( (lett >= 'A') & (lett <= 'Z')) {
letterCount[lett - 'A']++;
}
}
}
for (char count = 'A'; count <= 'z'; count++) {
System.out.print(count + ": " +
letterCount [count - 'A'] + " ");
if (count == 'M') {
System.out.println();
}
}
System.out.println();
}
}
我得到正确的输出尽可能使程序进入,但我不确定为什么例外出现。
通过阅读其他线程我知道,对于一个Java与“0”和数组开始时,我试图将“26”更改为“25”,它会导致程序无法运行。我想知道如果我收到例外实际上是一个问题,或者是它的Java告诉我,有因为数组实际上是阅读,它应该是27个字符数组的未使用的部分和没有价值一。
该代码试图去“A”到“Z”。你需要去为“A”到“Z”检查的ASCII表
for (char count = 'A'; count <= 'Z'; count++) {
System.out.print(count + ": " +
letterCount [count - 'A'] + " ");
if (count == 'M') {
System.out.println();
}
}
随着这一变化的放出来会
A: 22 B: 1 C: 2 D: 12 E: 31 F: 8 G: 6 H: 7 I: 15 J: 1 K: 1 L: 10 M: 9
N: 18 O: 20 P: 2 Q: 0 R: 9 S: 16 T: 19 U: 1 V: 6 W: 7 X: 0 Y: 7 Z: 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句