3
我目前正在使用此代碼把字符串轉換成一個數字:最有效的方式來獲得一個子不超過字符串長度
public static int getDigit(String whole, int sub) {
int d = Integer.parseInt(whole.substring(sub, sub+1));
print(Integer.toString(d));
return d;
}
但是,當我試圖讓最後一個數字我碰上錯誤的,我知道的原因,但有什麼辦法來克服這個問題,就像一個算法,比我的例子在這裏執行這個其他(有效的方法):
public static int getDigit(String whole, int sub) {
int d = 0;
if (sub < whole.length())
d = Integer.parseInt(whole.substring(sub, sub+1));
else
d = Integer.parseInt(whole.substring(sub));
print(Integer.toString(d));
return d;
}
注:請忽略代碼,我還沒有任何錯誤沒有測試第二個例子。第一個例子顯然有錯誤。
刪除'else'部分,它會工作。此外,當您打印整數/整數時,您不必調用'Integer.toString()'。 – alfasin
如果'sub'等於字符串的長度,那麼你期望輸出什麼?它指向字符串結束後;數字的索引爲'0'到'whole.length() - 1'。在字符串結尾後沒有數字要被解析。 – Jesper
這甚至不應該編譯 - 'd'還沒有被初始化。 – copeg