BufferedReader值为char数组

时间:2011-04-17 17:08:33

标签: java

char charArray[] = new char[ 100 ];

    BufferedReader buffer = new BufferedReader(
             new InputStreamReader(System.in));
    int c = 0;
    while((c = buffer.read()) != -1) {
            char character = (char) c;

如何将输入的字符放入我的数组?

4 个答案:

答案 0 :(得分:8)

使用正确的方法,完全符合您的要求:

char[] charArray = new char[100];
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
int actualBuffered = buffer.read(charArray,0,100);

如文档here中所述,此方法阻止并在以下时间返回:

  • 已读取指定数量的字符
  • 基础流的read方法返回-1,表示文件结束,或
  • 基础流的ready方法返回false,表示进一步的输入请求将被阻止。

答案 1 :(得分:0)

您将需要另一个变量来保存您希望将变量放在数组中的索引(索引)。每次通过循环,你将添加字符

charArray[index] = character;

然后你需要增加索引。

你应该注意不要在数组中写入太多数据(超过100)

答案 2 :(得分:0)

     char charArray[] = new char[ 100 ];
     int i = 0;
     BufferedReader buffer = new BufferedReader(
         new InputStreamReader(System.in));
     int c = 0;
     while((c = buffer.read()) != -1 && i < 100) {
          char character = (char) c;
          charArray[i++] = c;
     }

读取100个字符时停止。

答案 3 :(得分:0)

您还可以使用Reader公共接口中提供的方法在阵列中一次读取所有字符。

char[] input = new char[10];
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int size = reader.read(input);

System.out.println(String.valueOf(input, 0, size));
System.exit(0);