我是Java的初学者,我正在阅读通过readLine()键盘方法为变量赋值的主题.书中给出的程序如下:
import java.io.DataInputStream
class Reading
{
public static void main(String args[])
{
DataInputStream in = new DataInputStream(System.in);
int intnumber=0;
float floatnumber=0.0f;
try {
system.out.println("enter an integer: ");
intnumber = Integer.parseInt(in.readline());
system.out.println("enter a float number: ");
floatnumber = Float.valueOf(in.readline()).floatvalue();
}
// Rest of code
Run Code Online (Sandbox Code Playgroud)
我想问下列问题:
在以下声明中做了什么?
DataInputStream in = new DataInputStream(System.in);
Run Code Online (Sandbox Code Playgroud)
如果in是一个对象DataInputStream那么什么是新的,上面语句右边的语句是做什么的?
为什么使用不同的方法将整数值放入intnumber并将float值放入floatnumber?
Jom*_*oos 68
我建议你去,Scanner而不是DataInputStream.Scanner是专为此目的而设计的,并在Java 5中引入.请参阅以下链接以了解如何使用Scanner.
例
Scanner s = new Scanner(System.in);
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
Run Code Online (Sandbox Code Playgroud)
ada*_*ost 30
使用BufferedReader和InputStreamReader类.
BufferedReader buffer=new BufferedReader(new InputStreamReader(System.in));
String line=buffer.readLine();
Run Code Online (Sandbox Code Playgroud)
或者使用java.util.Scanner类方法.
Scanner scan=new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)
A DataInputStream只是一个InputStream(它System.in)的装饰器,它允许使用更方便的方法进行读取.
至于那个Float.valueOf(),好奇,因为Float也有.parseFloat().这里的代码抓取了一个Float使用.valueOf()它的原始float类型.floatValue(),由于自动取消装箱,这对于Java 1.5+是不必要的.
正如其他答案正确地说的那样,这些方法无论如何都已经过时了.
总结:我会小心你复制的代码.您可能正在复制恰好工作的代码,而不是精心选择的代码.
在intnnumber中,使用parseInt,在floatnumber中使用valueOf为什么会这样?
没有理由我能看到.正如您所怀疑的那样,这是对API的不一致使用.
Java区分大小写,并且没有任何Readline()方法.也许你的意思是readLine().
不推荐使用DataInputStream.readLine(),而使用BufferedReader.readLine();
但是,对于您的情况,我会使用Scanner类.
Scanner sc = new Scanner(System.in);
int intNum = sc.nextInt();
float floatNum = sc.nextFloat();
Run Code Online (Sandbox Code Playgroud)
如果你想知道什么是课程,我建议你快速浏览一下Javadoc.
我想这可以解释它......
import java.io.*;
class reading
{
public static void main(String args[]) throws IOException
{
float number;
System.out.println("Enter a number");
try
{
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(in);
String a = br.readLine();
number = Float.valueOf(a);
int x = (int)number;
System.out.println("Your input=" + number);
System.out.println("Your input in integer terms is = " + x);
}
catch(Exception e){
}
}
}
Run Code Online (Sandbox Code Playgroud)