Javaでユーザーから複数の値を1行で入力する方法
Javaでは、Scannerクラスを使用することで、ユーザーから1行に入力された複数の値を簡単に読み取ることができます。以下に、浮動小数点数と整数の2つの値を1行で入力するサンプルコードを示します。
コード例
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
System.out.print("Enter two floating point values : ");
Scanner my_scan = new Scanner(System.in);
double double_val = my_scan.nextFloat();
int int_val = my_scan.nextInt();
System.out.println("The floating point value is : " + double_val + " and the integer value is : "
+ int_val);
}
}入力
56.789 99
出力
Enter two floating point values : The floating point value is : 56.78900146484375 and the integer value is : 99
コードの解説
このプログラムでは、Demoという名前のクラス内にmainメソッドが定義されています。mainメソッドの中では、まずScannerクラスのオブジェクトが作成され、標準入力(System.in)から2つの値、すなわちdouble型の値とint型の値がそれぞれ読み込まれます。取得した値はそのままコンソールに出力されます。
重要なポイントとして、Scannerオブジェクトは入力を直接解析するため、文字列を事前にsplit()などで分割する必要がありません。デフォルトでは空白文字(スペースやタブ)が区切り文字として扱われるため、ユーザーは値を1行にまとめて入力しても、複数行に分けて入力してもどちらでも正しく読み取られます。
補足:より高精度な値を読み取りたい場合
上記の出力例で「56.78900146484375」と表示されているのは、nextFloat()がfloat型(単精度)として値を読み込むためです。float型は有効桁数が約7桁しかないため、誤差が生じます。より高い精度が必要な場合は、nextFloat()の代わりにnextDouble()を使用すると、「56.789」がそのまま正確に出力されます。
また、ScannerクラスにはnextInt()、nextLine()、nextBoolean()など、さまざまなデータ型に対応したメソッドが用意されており、これらを組み合わせることで、任意の個数・種類の値を柔軟に読み取ることが可能です。
-
【Java】JTextFieldの入力値を読み取ってJListに追加する方法を解説
JListとは JListはJComponentクラスのサブクラスで、ユーザーが単一選択または複数選択を行えるSwingのリストコンポーネントです。ただし、JListクラス自体にはスクロールバーの機能が備わっていないため、スクロールバーを表示したい場合はJScrollPaneクラスと組み合わせて使用します。JScrollPaneでJListをラップすれば、スクロールバーは自動的に管理されます。 DefaultListModelで項目を管理する DefaultListModelクラスは、リストモデルのシンプルな実装を提供しており、JListに表示される項目を管理するために利用できます。Defa
-
Java SwingのJCheckBoxで一度に1つの項目だけを選択する方法(ButtonGroupの使い方)
JCheckBoxとは JCheckBoxはJToggleButtonを継承したSwingコンポーネントで、チェック済みか未チェックのいずれかの状態を持つ小さなボックスとして画面に表示されます。 ユーザーがJCheckBoxをクリックすると、チェック状態と未チェック状態が自動的に切り替わります。 チェックボックスの状態が変化すると、ActionListenerやItemListenerが発生し、イベント処理を行うことができます。 isSelected()メソッドを使うと、そのチェックボックスが選択されているかどうかを判定できます。 デフォルトの状態では、複数のチェックボックスを同時に選択す