ユーザーがテキスト ボックスに入力した 1 行のデータを受け入れるプログラムを作成します。これらのデータはすべてスペースで区切られた整数であり、スペースの数に制限はありません。データを 1 次元配列に分割し、その配列から最小値を抽出してインターフェイスに表示します。目的は、最初にユーザーの入力を検証することです。つまり、まず、trim() 関数を使用して、ユーザーの入力文字列の左右のスペースをフィルター処理します。結果が空の文字列の場合は、JOptionPane クラスの showMessageDialog メソッドを使用します。ユーザーに「デジタル コンテンツを入力してください」というプロンプトを表示します。ユーザー入力が空でない場合は、charAt 関数を使用してユーザー入力文字列内の各文字を判断し、それが数値でもスペースでもない場合は、「入力には数値以外のコンテンツが含まれています」というプロンプトが表示され、setText を使用します。 () ユーザー入力ボックスを入力する関数。 内のデータはクリアされます。検証に合格すると、文字列型の 1 次元配列が作成されます。その要素は、スペースで区切られたユーザー入力文字列の内容です。次に、整数の 1 次元配列を作成し、文字列配列の長さに等しいスペースを割り当てます。次に、入力は、Integer クラスの valueOf() 関数を通じて整数配列に変換されます。最小数値変数を作成し、それを整数配列の最初の要素に初期化します。 for ループを使用して整数配列を走査して最小整数を抽出し、最後に setText() 関数を使用して最小値を指定されたラベルに表示します。
コードは次のとおりです。
次のようにコードをコピーします。
インポートjava.awt.EventQueue;
javax.swing.JFrameをインポートします。
javax.swing.JLabel をインポートします。
インポートjavax.swing.JTextField;
javax.swing.JButtonをインポートします。
インポート java.awt.event.ActionListener;
インポートjava.awt.event.ActionEvent;
インポート javax.swing.JOptionPane;
パブリック クラス ArrayMinValue {
プライベート JFrame フレーム。
プライベート JTextField テキストフィールド;
JLabel lblNewLabel_1 = 新しい JLabel();
/**
* アプリケーションを起動します。
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
試す {
ArrayMinValue ウィンドウ = new ArrayMinValue();
window.frame.setVisible(true);
} catch (例外 e) {
e.printStackTrace();
}
}
});
}
/**
* アプリケーションを作成します。
*/
public ArrayMinValue() {
初期化();
}
/**
※フレームの内容を初期化します。
*/
プライベート void 初期化() {
Frame = new JFrame("1次元配列の最小値を取得");
フレーム.setBounds(100, 100, 450, 150);
Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
フレーム.getContentPane().setLayout(null);
JLabel lblNewLabel = new JLabel("スペースを区切り文字として使用して、テキスト ボックスに複数の整数を入力してください。例: 3 5 2 562 125");
lblNewLabel.setBounds(10, 10, 414, 15);
Frame.getContentPane().add(lblNewLabel);
textField = 新しい JTextField();
textField.setBounds(10, 35, 414, 21);
フレーム.getContentPane().add(textField);
textField.setColumns(10);
lblNewLabel_1.setBounds(115, 70, 309, 15);
Frame.getContentPane().add(lblNewLabel_1);
JButton ボタン = new JButton("/u8BA1/u7B97");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
button.setBounds(10, 66, 93, 23);
フレーム.getContentPane().add(ボタン);
}
protected void do_button_actionPerformed(ActionEvent e) {
String arrayStr = textField.getText().trim(); //左右のスペースを削除します。
if(arrayStr.equals("")){
JOptionPane.showMessageDialog(null, "デジタル コンテンツを入力してください");
戻る;
}
for (int i = 0; i < arrayStr.length(); i++) { // 不正な入力をフィルタリングします
char charAt = arrayStr.charAt(i);
if (!Character.isDigit(charAt) && charAt != ' ') {
JOptionPane.showMessageDialog(null, "入力には数値以外のコンテンツが含まれています");
textField.setText("");
戻る;
}
}
String[] numStrs = arrayStr.split(" {1,}"); // 文字列を分割します
int[] numArray = new int[numStrs.length] // 整数配列を作成します。
//入力を整数配列に変換します
for (int i = 0; i < numArray.length; i++) {
numArray[i] = Integer.valueOf(numStrs[i]);
}
int min = numArray[0] // 最小数の変数を作成します。
for (int j = 0; j < numArray.length; j++) {
if (min > numArray[j]) { //最小の整数を抽出します
最小 = numArray[j];
}
}
lblNewLabel_1.setText("配列内の最小値は次のとおりです: " + min) // 指定されたラベルの最小値を表示します。
}
}
効果は次の図に示すとおりです。