2014-03-27 32 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

相关问题