日期:2014-05-20  浏览次数:20677 次

java中输出的值不是想要的值?怎么解决?
import java.io.* ;
public class Test1 {
 public static void main (String args[]) {
  System.out.print("Input:");
 int i = 0 ;
 
  try {
  i = System.in.read();
  }
  catch(IOException e) { 
  e.printStackTrace();

 
  }
  System.out.println(i) ;  
 } 
}

------解决方案--------------------
换Scanner能解决。
Java code

import java.util.Scanner;
public class Test1 
{
    public static void main (String args[]) 
    {
        Scanner scan=new Scanner(System.in);
        System.out.print("Input:");
        int i = 0 ;
        i = scan.nextInt();
        System.out.println(i) ;   
    }  
}

------解决方案--------------------
楼主的代码应该得到是字符的编码的值。
用1楼的方法吧,可以得到你输入的数字。
------解决方案--------------------
这样也行,楼主参考下:
Java code

import java.io.* ;
import java.util.Arrays;                        //仅供显示用。
public class Test1 
{
    public static void main (String args[]) 
    {
        System.out.print("Input:");
        int i = 0 ;
        byte[] input=new byte[10];                //定义一个10个长度字节数组.
        try 
        {
            i = System.in.read(input);            //从键盘接收输入,i是实际读入长度。
             }
        catch(IOException e)
        {  
             e.printStackTrace();
        }
        int number=0;
        for(int j=0;j<i-2;j++)                    //去掉回车换行。
        {
            number=number*10+((int)input[j]-48);        //循环把ascii码转成数字。
        }
        System.out.println("input is  "+Arrays.toString(input));
        System.out.println("number is: "+number) ;   
    }  
}

------解决方案--------------------
自己使用BufferReader实现接受键盘输入 以后每次用就可以 Scanner也提供了相应的输入方法 用也可以 不过效率不太高