私は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
次の質問をしたいです。
次の文で何が行われますか?
DataInputStream in = new DataInputStream(System.in);
in
がDataInputStream
のオブジェクトである場合、何が新しく、上記のステートメントの右側のステートメントは何をしますか?
整数値をintnumberに、float値をfloatnumberに入れるために異なる方法が使用されたのはなぜですか?
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());
BufferedReaderおよびInputStreamReaderクラスを使用します。
BufferedReader buffer=new BufferedReader(new InputStreamReader(System.in));
String line=buffer.readLine();
または、Java.util.Scanner
クラスメソッドを使用します。
Scanner scan=new Scanner(System.in);
DataInputStream
は、InputStream
(これはSystem.in
です)の単なるデコレーターであり、より便利なメソッドを使用して読み取ることができます。
Float.valueOf()
については、Float
にも.parseFloat()
もあるので、それは興味があります。ここで、コードは.valueOf()
でFloat
を取得し、.floatValue()
を使用してfloat
型に変換します。これはJava 1.5+では不要です。自動ボックス化解除。
そして、他の答えが正しく言うように、これらの方法はとにかく時代遅れです。
要約すると、どのコードをコピーするかについては注意が必要です。適切に選択されたコードではなく、たまたま機能するコードをコピーしている可能性があります。
Intnumberでは、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();
クラスが何をしているのか知りたい場合は、 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){
}
}
}