Topic: 如何将用户输入的数字,转换为int型。

  Print this page

1.如何将用户输入的数字,转换为int型。 Copy to clipboard
Posted by: laies
Posted on: 2006-04-10 22:47

int ug=System.in.read();
System.out.println(ug);

用户输入1
输出结果是49

它输出的ACSII码,
问题一:怎么转换让他们输出与用户一致的,也就是1。

2.Re:如何将用户输入的数字,转换为int型。 [Re: laies] Copy to clipboard
Posted by: zcjl
Posted on: 2006-04-11 00:12

使用
System.out.println((char)ug);

3.Re:如何将用户输入的数字,转换为int型。 [Re: laies] Copy to clipboard
Posted by: laies
Posted on: 2006-04-11 08:45

如果在过程中判断,
Random rand = new Random();
int r=rand.nextInt();

if(ug==r)

强制类型的转换好像不可取
iug = Integer.parseInt(ug);
除了使用parseInt方法以外,还有其它办法吗?

好像Integer.valueOf();也可以

4.Re:如何将用户输入的数字,转换为int型。 [Re: laies] Copy to clipboard
Posted by: zcjl
Posted on: 2006-04-11 09:18

int i = Character.getNumericValue((char)ug);

5.Re:如何将用户输入的数字,转换为int型。 [Re: laies] Copy to clipboard
Posted by: tuutoo
Posted on: 2006-04-12 10:38

Integer.parseInt();

6.Re:如何将用户输入的数字,转换为int型。 [Re: laies] Copy to clipboard
Posted by: steven_652
Posted on: 2006-04-13 12:17

int Interger.parseInt(String )

7.Re:如何将用户输入的数字,转换为int型。 [Re: laies] Copy to clipboard
Posted by: laies
Posted on: 2006-04-13 12:59

问题一: System.in.read是什么类型的?好像在两个类型中徘徊。
使用Integer.valueOf();是可以的
使用Interger.parseInt();却不可以了。
说明System.in.read是int的。
问题二:是int为什么不可以直接转换那?
问题三:为什么使用字符流,就可以使用Interger.parseInt()了那?
BufferedReader reader = new BufferedReer(new InputStreamReader(System.in);
int ii = Integer.parseInt(reader.readLine());

8.Re:如何将用户输入的数字,转换为int型。 [Re: laies] Copy to clipboard
Posted by: Skybus
Posted on: 2006-04-13 15:38

首先System.in.read()返回的是int类型,而你从终端上输入的“数字”在机器看来只是一堆0101的编码,它并不知道那是"数字",它把你输入的字符转化为int类型的对应的数值而已。另外,
Integer.valueOf(String s);//返回一个Integer类型的对象  
Interger.parseInt(String);//返回int类型

两个方法需要的参数都是一个String类型对象,并不存在“字符流“就可以使用Interger.parseInt()的问题,实际上reader.readLine()已经把输入流转化为一个String类型了。
参看:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Integer.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/InputStream.html

9.Re:如何将用户输入的数字,转换为int型。 [Re: laies] Copy to clipboard
Posted by: 我所爱
Posted on: 2006-04-14 14:22

我也遇到过类似问题,看这段代码,满意不 :
int a=input();
static int input ()throws IOException
  {
    int x;
    InputStreamReader ir=new InputStreamReader(System.in);
    BufferedReader in=new BufferedReader(ir);
    String s=in.readLine();
    x=Integer.parseInt(s);
    return x;
  }
System.out.printlna(a);

10.Re:如何将用户输入的数字,转换为int型。 [Re: laies] Copy to clipboard
Posted by: guaqingqing1314
Posted on: 2006-06-07 17:41

呵呵,我觉得最简便的方法就是输出的时候减去0的ACSII码48,刚好就可以输出1了,解决问题不能太死板!


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923