ホームページ  >  記事  >  Java  >  Javaで入力を取得するにはどうすればよいですか?

Javaで入力を取得するにはどうすればよいですか?

尚
オリジナル
2019-12-03 09:21:348620ブラウズ

Javaで入力を取得するにはどうすればよいですか?

Java プログラム開発のプロセスでは、キーボードから入力値を取得する必要があるのが一般的ですが、Java では C 言語のような scanf() が提供されません。 C が提供する機能 提供されている cin() 関数は、キーボード入力値を取得するための既製の関数です。 Java にはそのような機能はありませんが、このような状況に遭遇したときに無力であるというわけではありません。 (推奨: Java ビデオ チュートリアル )

次の 3 つの解決策をご覧ください:

いくつかの方法を以下に示します:

方法 1 : コンソールから文字を受信して​​出力します

import java.io.*;
public static void main(String [] args) throws IOException{ 
         System.out.print("Enter a Char:"); 
         char i = (char) System.in.read(); 
         System.out.println("your char is :"+i); 
}

このメソッドはキーボードからの入力文字の取得を実現しますが、System.out.read() は 1 文字しか取得できず、同時に取得できる変数の型はcharのみなので、数値を入力して整数の変数を取得したい場合は、変数の型を変更する必要があり、さらに面倒です。

方法 2: コンソールから文字列を受け取り、それを出力します。この質問では、入力した文字列を取得できるように、BufferedReader クラスと InputStreamReader クラス

import java.io.*;
public static void main(String [] args) throws IOException{ 
           BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
           String str = null; 
           System.out.println("Enter your value:"); 
           str = br.readLine(); 
           System.out.println("your value is :"+str); 
}

を使用する必要があります。

方法 3: この方法は、Scanner クラスを使用するのが最も簡単で強力だと思います。

import java.util.Scanner;
public static void main(String [] args) { 
         Scanner sc = new Scanner(System.in); 
         System.out.println("请输入你的姓名:"); 
         String name = sc.nextLine(); 
         System.out.println("请输入你的年龄:"); 
         int age = sc.nextInt(); 
         System.out.println("请输入你的工资:"); 
         float salary = sc.nextFloat(); 
         System.out.println("你的信息如下:"); 
         System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); 
}

このコードは、Scanner クラスが文字列または整数に使用されることを示しています。データ型または浮動小数点型は、いくつかの小さな変更を加えるだけで機能します。間違いなく彼が最強です!

ただし、3 番目の入力メソッドを使用するときに注意する必要があることが 1 つあります。それは nextLine() 関数です。io パッケージには、これと同じ機能を持つ関数があります。 next() 関数。関数は同じですが、実装の違いは何ですか? 次のコードを参照してください:

public static void main(String [] args) { 
         Scanner sc = new Scanner(System.in); 
         System.out.println("请输入你的年龄:"); 
         int age = sc.nextInt(); 
         System.out.println("请输入你的姓名:"); 
         String name = sc.nextLine(); 
         System.out.println("请输入你的工资:"); 
         float salary = sc.nextFloat(); 
         System.out.println("你的信息如下:"); 
         System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); 
}

このコードと、3 番目の実装入力メソッドについて上記で示したサンプル コードの違いは次のとおりです。このコードは最初に nextInit() を実行し、次に nextLine() を実行すること、そして 3 番目のメソッドの例は、最初に nextLine() を実行し、次に nextInit() を実行することです。 3 番目の方法の例では通常の Enter が実現できますが、このコードでは年齢を入力しています。Enter キーを押した後、名前の入力をスキップし、直接給与の入力に進みます。(コードを自分で実行して確認できます)。これ?

実際には、nextInit() 関数を実行して Enter キーを押した後、復帰文字は nextLine() 関数によって吸収されます。実際、nextLine() 関数は、入力された文字を吸収するために実行されます。キャリッジリターン.文字(nextLine関数が実行されないわけではありません) 前述したように、next()関数はnextLine()と同じ機能を持ちますが、両者の違いはnext()関数が改行文字を受け取らないことです。 nextLine() 関数を使用するときは、入力した復帰文字が吸収され、プログラムにバグが発生する可能性があることに注意してください。 ! !

Java についてさらに詳しく知りたい場合は、Java 基本チュートリアル 列に注目してください。

以上がJavaで入力を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。