當我嘗試運行下面的代碼,我得到隨機Generater,字符串和數組
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 7
at java.lang.String.charAt(String.java:658)
at main.main(main.java:27)
Java結果:1
我還是要在的東西得到的最高值和最低的補充。 該程序必須通過一個字符串工作。我在下面使用的方法, 不是來自其他任何地方,我只是有點這樣做,但老師暗示使用循環。有什麼建議麼?我認爲這可能是因爲數組中的垃圾。
int highValue,lowestValue,sum;
int random;
int check, otherCheck;
int a = 0,b = 0,c = 0,d = 0,e = 0;
String passingRandomIn;
//Create a object that generates a random number 4-8
Random ran = new Random();
//Generates a random number between 4 and 8
random = ran.nextInt(5)+4;
//Sets the randomly generated number equal to check and other check
check = random;
otherCheck = random;
//Declare an array of 5 characters[0-4] inclusive
char[] myCharArray = new char[4];
//To string
passingRandomIn = Integer.toString(random);
//Pass in the random numbers(character per character from the string)
switch(check){
case 8: myCharArray[4] = passingRandomIn.charAt(4);
check--;
case 7: myCharArray[3] = passingRandomIn.charAt(3);
check--;
case 6: myCharArray[2] = passingRandomIn.charAt(2);
check--;
case 5: myCharArray[1] = passingRandomIn.charAt(1);
check--;
case 4: myCharArray[0] = passingRandomIn.charAt(0);
break;
}
//Add the array of characters to an array of integers
switch(otherCheck)
{
case 8: a = Character.getNumericValue(myCharArray[4]);
case 7: b = Character.getNumericValue(myCharArray[3]);
case 6: c = Character.getNumericValue(myCharArray[2]);
case 5: d = Character.getNumericValue(myCharArray[1]);
case 4: e = Character.getNumericValue(myCharArray[0]);
break;
}
sum = a + b + c + d + e;
System.out.println(sum);
}
}
第27行在哪裏? – 2014-10-09 04:20:11
'case 8:myCharArray [4] = passingRandomIn.charAt(8);'不能工作,因爲'myCharArray'只能初始化4個元素(0-3) – MadProgrammer 2014-10-09 04:21:09
'check = random; otherCheck = random;'提示:你可以直接使用'random',而不是將它複製到另外兩個變量中。 – 2014-10-09 04:25:51