我的代碼總是拋出一個異常java.lang.String.charAt
:Java代碼保持在此行中我的代碼拋出異常
while(0 == charToInt(value.charAt(startValueAt))){
,
private static ArrayList<Integer> stringToArray(String value){
ArrayList<Integer> holder = new ArrayList<Integer>();
int startValueAt = 0;
if(value.charAt(0)=='-'|| value.charAt(0)=='+')
startValueAt= 1;
else
startValueAt = 0;
while(0 == charToInt(value.charAt(startValueAt))){
startValueAt++;
}
int startOfValue = value.length() - (startValueAt - 1);
//to make sure that arraylist is right size and last element ends up at zero as well as find starting index of j with above step
//we use value of startValueAt
for(int i = startOfValue, j = startValueAt; j <= value.length() - 1; i--, j++){
holder.add(0, charToInt(value.charAt(j)));
}
return holder;
}
這裏是堆棧跟蹤:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(String.java:686)
at BigInt.stringToArray(BigInt.java:145)
at BigInt.<init>(BigInt.java:35)
at BigInt.multiplyBySingleDigit(BigInt.java:853)
at BigInt.multiplyPositives(BigInt.java:878)
at BigInt.multiplyOneNegative(BigInt.java:920)
at BigInt.multiply(BigInt.java:778)
at BigInt_Add_Sub_Mul_Div_Mod_Demo.main(BigInt_Add_Sub_Mul_Div_Mod_Demo.java:164)
什麼是'charToInt()'?這是你寫在其他地方的方法嗎? – CubeJockey
你看到什麼錯誤?你能發佈完整的堆棧跟蹤嗎? –
線程「main」中的異常java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:4 \t at java.lang.String.charAt(String.java:686) \t at BigInt.stringToArray(BigInt.java:145) \t在BigInt有。(BigInt.java:35) \t在BigInt.multiplyBySingleDigit(BigInt.java:853) \t在BigInt.multiplyPositives(BigInt.java:878) \t在BigInt.multiplyOneNegative(BigInt.java:920) \t在BigInt.multiply(BigInt有。java:778) \t at BigInt_Add_Sub_Mul_Div_Mod_Demo.main(BigInt_Add_Sub_Mul_Div_Mod_Demo.java:164) –
Rocketsm46