2012-03-22 81 views
1

我試圖將一個字符串存儲到一個整數數組用下面的代碼:將字符串存儲在整數數組中。

public LargeInteger(String s) {  
    for (int i = 0; i < s.length(); i++) { 
     intArray[i] = Integer.parseInt(s.charAt(i)); 
    } 
} 

日食是給我一個錯誤說:該方法parseInt函數(字符串)是不適用的參數(炭)

我做錯了什麼?

回答

6

您需要解析char或將其轉換爲String

如果你想在同一時間得到一個數字,你知道你的輸入是一個數字,然後一個數字轉換爲int最簡單的方法就是

intArray[i] = Character.digit(s.charAt(i), 10); // in base 10 

如果你想繼續使用Integer.parseInt,然後就去做

intArray[i] = Integer.parseInt(String.valueOf(s.charAt(i))); 
// or 
intArray[i] = Integer.parseInt(s.substring(i, i+1)); 
+0

感謝,這是有道理的,但我仍然很可能是因爲得到一個錯誤別的我做錯了.. – Sackling 2012-03-22 17:09:49

0

字符不是一個字符串所以使用一個子功能s.substring(i, i+1)或更好intArray[i] = s.charAt(i)

0

s.charAt返回一個字符。 + parseInt採取String = Eclipse中爲您提供了編譯錯誤

您可以創建從焦炭一個字符串,如果真的需要:

s.charAt(i)+"" 
0
String[] split = s.split(""); 
int[] nums = new int[split.length]; 
for(int i = 0; i < split.length; i++){ 
    nums[i] = Integer.parseInt(split[i]); 
} 
1

這是因爲Integer.parseInt()需要一個String作爲參數,而你正在通過一個chars.charAt()返回一個char)。

因爲要創建在一個時間數組中的一個數字,一個更好的方式來獲得十進制表示是:

intArray[i] = s.charAt(i) - '0'; 
0
public class Storing_String_to_IntegerArray 
{ 

    public static void main(String[] args) 
    { 
     System.out.println(" Q.37 Can you store string in array of integers. Try it."); 

     String str="I am Akash"; 
     int arr[]=new int[str.length()]; 
     char chArr[]=str.toCharArray(); 
      char ch; 
     for(int i=0;i<str.length();i++) 
     { 

      arr[i]=chArr[i]; 
     } 
     System.out.println("\nI have stored it in array by using ASCII value"); 
     for(int i=0;i<arr.length;i++) 
     { 

      System.out.print(" "+arr[i]); 
     } 
     System.out.println("\nI have stored it in array by using ASCII value to original content"); 
     for(int i=0;i<arr.length;i++) 
     { 
      ch=(char)arr[i]; 

      System.out.print(" "+ch); 
     } 
    } 

}