2009-12-21 120 views
4

如何將String數組轉換爲java中的int數組? 我正在讀的整數字符流成從控制檯String陣列,其中從控制檯讀取int

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

其中str[]是字符串類型的。 我想比較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(); 
    } 

不管怎麼說,你爲什麼不使用掃描儀?如果您使用Scanner,對您而言會更容易。 :)

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 2009-12-21 05:53:15

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 

還要注意的是,按照規定herenextInt()功能可以拋出3個例外。不要忘記處理它們。