2015-01-10 79 views
-5

我努力使這項工作作爲一個Python用戶被迫使用Java單個int:解析整數數組與Java的

private int parseInt(char[]){ 
     private int parsed = 0 
     for (i=0 ; i < char.length(); i++;) 
     {parsed += (10**i) * char[i];} 
      } 

我需要知道爲什麼這種方法拒絕工作,以及如何在不使用內置功能的情況下修復它

+3

「拒絕工作」不是一個有用的問題描述。 – khelwood

+0

我在代碼中看到至少兩個語法錯誤(第二行缺少分號,第三行缺少另一個分號)。你可能想要開始修復它們。 – yole

+0

你需要描述你想要做的事情。然後你需要描述爲什麼你發佈的這個方法不行。如果出現錯誤,您需要將其完整發布。爲了清晰起見,您還應該發佈幾組輸入和輸出。 –

回答

0

首先,將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; 
} 
+0

我更喜歡['Character.numericValue'](http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#getNumericValue(char))進行轉換,因爲它更自我記錄抵消「0」。 –

+0

順便說一下,這假定數字是以相反的順序寫入的。 –

+0

Math.pow非常慢,併產生一個double。 –