2009-12-21 4 views
4

String 어레이를 java의 int 어레이로 변환하려면 어떻게해야합니까? 나는 str[]는 문자열 입력입니다콘솔에서 int를 읽는 중

BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); 
for(c=0;c<str.length;c++) 
    str[c] = br.readLine(); 

으로, 콘솔에서 String 배열에 정수 문자의 스트림을 읽고있다. str[] 내용 ... 문자 (오류)에서 수행 할 수없는 내용을 비교하려고합니다. 따라서 콘솔에서 int을 읽으 려합니다. 이것이 가능한가?

답변

11

Integer.parseInt(String); 당신이 원하는 무언가이다.


이 시도 :

int[] array = new int[size]; 
    try { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     for (int j = 0; j < array.length ; j++) { 
       int k = Integer.parseInt(br.readLine()); 
       array[j] = k; 
     } 
    } 

    catch (Exception e) { 
      e.printStackTrace(); 
    } 

어쨌든, 왜 스캐너를 사용하지 않는? 스캐너를 사용하면 훨씬 쉬울 것입니다. :) 스캐너를 사용

int[] array = new int[size]; 
    try { 
     Scanner in = new Scanner(System.in); //Import java.util.Scanner for it 
     for (int j = 0; j < array.length ; j++) { 
       int k = in.nextInt(); 
       array[j] = k; 
     } 
    } 
    catch (Exception e) { 
      e.printStackTrace(); 
    } 

6
int x = Integer.parseInt(String s); 
+1

'String'에 구문 분석 가능한 'int'가 포함되어 있지 않으면 'NumberFormatException'을 포착해야합니다. – Asaph

6

가 훨씬 빠르고, 따라서 더 효율적입니다. 또한 입력을 위해 버퍼링 된 스트림을 사용하는 번거 로움을 필요로하지 않습니다. 다음은 그 사용의 :

java.util.Scanner sc = new java.util.Scanner(System.in); // "System.in" is a stream, a String or File object could also be passed as a parameter, to take input from 

int n; // take n as input or initialize it statically 
int ar[] = new int[n]; 
for(int a=0;a<ar.length;a++) 
    ar[a] = sc.nextInt(); 
// ar[] now contains an array of n integers 

은 또한 점에 유의 here을 지정된대로 nextInt() 기능은 3 개 예외를 던질 수 있습니다. 그들을 처리하는 것을 잊지 마십시오.