我努力使這項工作作爲一個Python用戶被迫使用Java單個int:解析整數數組與Java的
private int parseInt(char[]){
private int parsed = 0
for (i=0 ; i < char.length(); i++;)
{parsed += (10**i) * char[i];}
}
我需要知道爲什麼這種方法拒絕工作,以及如何在不使用內置功能的情況下修復它
我努力使這項工作作爲一個Python用戶被迫使用Java單個int:解析整數數組與Java的
private int parseInt(char[]){
private int parsed = 0
for (i=0 ; i < char.length(); i++;)
{parsed += (10**i) * char[i];}
}
我需要知道爲什麼這種方法拒絕工作,以及如何在不使用內置功能的情況下修復它
首先,將10**i
更改爲Math.pow(10,i)
。
然後命名您的char[]
陣列。我們稱之爲c
。
然後,將c[i]
更改爲c[i]-'0'
,假設c[i]
是數字。
private int parseInt(char[] c)
{
int parsed = 0;
for (i=0 ; i < c.length; i++)
parsed += Math.pow(10,i) * (c[i]-'0');
return parsed;
}
我更喜歡['Character.numericValue'](http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#getNumericValue(char))進行轉換,因爲它更自我記錄抵消「0」。 –
順便說一下,這假定數字是以相反的順序寫入的。 –
Math.pow非常慢,併產生一個double。 –
「拒絕工作」不是一個有用的問題描述。 – khelwood
我在代碼中看到至少兩個語法錯誤(第二行缺少分號,第三行缺少另一個分號)。你可能想要開始修復它們。 – yole
你需要描述你想要做的事情。然後你需要描述爲什麼你發佈的這個方法不行。如果出現錯誤,您需要將其完整發布。爲了清晰起見,您還應該發佈幾組輸入和輸出。 –