2014-03-27 61 views
1

我需要在一個給定的字符串,在作爲輸入字符串輸入到負載:如何通過BufferedReader加載字符串?

   20 6 
      .................... 
      ..XXXXX..XXX.XXX..X. 
      ..X.X.X..X.XXX.X..X. 
      ..XXXXX..XX.X..X.... 
      ..XX......XXXXXX..X. 
      .................... 

類似的東西。它包含2個整數和一個帶「。」的字符串。和「X」 現在我只想問2個問題: 1)我需要首先加載2個整數,但如何通過BufferedReader獲得前兩個整數?(2 int除以彼此之間的空間和休息)

2)然後加載後的兩個整數,我怎麼能加載下面的休息字符串字符char?(就像我每次需要加載一個字符,然後我去一些函數,然後回來並加載下一個字符,之間沒有空格)

這裏是我的代碼部分:

 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     String str=br.readLine(); 
     number1 = Integer.parseInt(); 
     number2 = Integer.parseInt(); 

現在我不知道如何繼續......任何人都可以幫我加載它?

+0

使用'Scanner'來代替。 –

回答

0

對於1)您只需要2做split

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    String str=br.readLine(); 
    String ints[] = str.split(" "); 
    number1 = Integer.parseInt(ints[0]); 
    number2 = Integer.parseInt(ints[1]); 

然後)一旦你有一個字符串,你可以把它的長度,因此讓他們用炭炭;)

String lol = "......XXX..XX..."; 
for(int i = 0; i < lol.length(); i++) 
    System.out.println(lol.charAt(i)); 

有了這個,你將得到你所有的字符串字符char

0

這是好得多,如果你使用Scanner那麼你可以閱讀int和字符串更容易。 我想你輸入兩個整數作爲列和行。 像這樣的示例:

Scanner scan = new Scanner(System.in); 
int col = scan.nextInt(); 
int row = scan.nextInt(); //input two int first 
scan.nextLine(); 
for(int i = 0; i < row; i++) { 
    String s = scan.nextLine(); 
    for(int j = 0; j < col; j++) { 
     char c = s.charAt(j); 
     //your code here 
    } 
} 
+0

但是當我輸入數據時有很多關於「/ n」的問題,這總是錯誤的。如何解決這個問題? – user3390163

+0

通過檢查並在循環中轉儲它來忽略它。 – avgvstvs

+0

@ user3390163如果您從控制檯輸入字符串並且有「/ n」,那麼您如何標記輸入的結尾? – locoyou

相關問題