我用system.in.read()读入int类型数据,好像不正确,比如我输入100打出来是49次,代码如下:
public class Machine extends Thread{
  int init;
  Machine(int init){
   this.init=init;
  }
  
  public void set(int data){init=data;}  public void run(){
    for(int a=0;a<init;a++)
      System.out.println(currentThread().getName()+":"+a);
  }  public static void main(String args[])throws Exception{
    int b=100;
    Machine machine=new Machine(b);
    machine.start();
    int data=(int)System.in.read();
    machine.set(data);
    machine.run();
  }
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【topcs】截止到2008-07-12 16:01:19的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:20                       每贴平均分数:20                       
    回帖的总数量:1                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:20                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

        int b=100;
        Machine machine=new Machine(b);

        int data=(int)System.in.read();
        machine.set(data);
    都是对Machine.init设置值,干吗要设置两遍?
      

  3.   

    int data=(int)System.in.read();
    data得到的并不是你输入的值,比如你输入100,它读取的是1,data是1的ascall码,也就是说不管你输入的是1xxxxx多少,他都是49,明白了吗?
    data的值的范围在0-255 或者 -1,具体可以查看java doc
      

  4.   

    你可以这么写来实现你想要的读入:
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    int data = Integer.parseInt(br.readLine());