2012-03-22 4 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

0

문자를하면된다 s.substring(i, i+1) 이상 intArray[i] = s.charAt(i)

0

s.charAt은 char를 반환합니다. Integer.parseInt()가 매개 변수로 String을 기대하고 있기 때문이다

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

반면 : + parseIntString = 이클립스

정말 필요한 경우이 문자에서 문자열을 만들 수 있습니다

당신에게 컴파일 오류를 제공 받아 char (s.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); 
     } 
    } 

} 
관련 문제