System.in.read(x);
读取了以后是ASCII码。。
怎么才能换成字符串?

解决方案 »

  1.   

    下面是一个例子:
    ----------------------------------------------
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;public class Input { /**
             * 读取用户输入的一行
     * @return 用户输入的一行字符
     * @throws IOException 如果读取失败
     */
    public static String readLine() throws IOException {
    BufferedReader breader = new BufferedReader(new InputStreamReader(
    System.in));
    return breader.readLine();
    }
    }
      

  2.   

    搞错了,
    new String(x) 就可以了。
      

  3.   

    new String(byte[] bytes)/******用你的方法写了段代码******/
    public class Test {
        public static void main(String args[]){
            try {
            
            StringBuffer stringBuffer = new StringBuffer(1024);
            byte buffer[] = new byte[1024];
            int len = 0;
            while( (len = System.in.read(buffer)) > 0 ) {
                stringBuffer.append(new String(buffer, 0, len));
            }
            
            System.out.println("result: "+stringBuffer.toString());
            
            } catch(IOException e) {
                e.printStackTrace();
            }
        }
    }
      

  4.   

    注意你没有检查byte[]的长度是否足够。
      

  5.   

    (len = System.in.read(buffer)>0
    难道只有正数才能读取吗?这个判断有点问题
      

  6.   

    我记得文档好像是返回-1是读到EOF,返回0应该也是可以的。写的时候贪顺手就没改。谢谢楼上的纠正。还有我上面的那个注意是不合适的。主要问题不是bytes长度不够,而是长度多余的时候,返回的String对象可能会不正确。