Java獲取一維數(shù)組的最小值實(shí)現(xiàn)方法
編寫程序,實(shí)現(xiàn)接受用戶在文本框中輸入的單行數(shù)據(jù)。這些數(shù)據(jù)都是整數(shù)數(shù)字,以空格進(jìn)行分隔,空格數(shù)量不限。并將這些數(shù)據(jù)分割成一維數(shù)組,再從數(shù)組中提取最小值顯示在界面中。思路是先對用戶的輸入進(jìn)行驗(yàn)證,即先用trim()函數(shù)過濾用戶輸入字符串的左右空格,若結(jié)果為空字符串則用JOptionPane類的showMessageDialog方法提示用戶"請輸入數(shù)字內(nèi)容"。若用戶輸入非空則使用charAt函數(shù)對用戶輸入字符串中的每一個(gè)字符進(jìn)行判斷,若其既非數(shù)字也非空格則提示"輸入包含非數(shù)字內(nèi)容",然后使用setText()函數(shù)將用戶輸入框中的數(shù)據(jù)清空。若通過驗(yàn)證則創(chuàng)建一個(gè)字符串型一維數(shù)組,其元素是用戶輸入字符串以空格分隔后得到的內(nèi)容。然后創(chuàng)建一個(gè)整型一維數(shù)組,并為其開辟等同于字符串型數(shù)組長度的空間。然后通過Integer類的valueOf()函數(shù)轉(zhuǎn)換輸入為整型數(shù)組。創(chuàng)建最小數(shù)變量,并初始化為整型數(shù)組的第一個(gè)元素。使用for循環(huán)遍歷該整型數(shù)組以提取最小整數(shù),最后使用setText()函數(shù)顯示最小值到指定的標(biāo)簽中。
代碼如下:
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
public class ArrayMinValue {
private JFrame frame;
private JTextField textField;
JLabel lblNewLabel_1 = new JLabel();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ArrayMinValue window = new ArrayMinValue();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public ArrayMinValue() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame("獲取一維數(shù)組最小值");
frame.setBounds(100, 100, 450, 150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JLabel lblNewLabel = new JLabel("請?jiān)谖谋究蛑休斎攵鄠€(gè)整數(shù),以空格為分隔符。例如:3 5 2 562 125");
lblNewLabel.setBounds(10, 10, 414, 15);
frame.getContentPane().add(lblNewLabel);
textField = new JTextField();
textField.setBounds(10, 35, 414, 21);
frame.getContentPane().add(textField);
textField.setColumns(10);
lblNewLabel_1.setBounds(115, 70, 309, 15);
frame.getContentPane().add(lblNewLabel_1);
JButton button = new JButton("\u8BA1\u7B97");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
button.setBounds(10, 66, 93, 23);
frame.getContentPane().add(button);
}
protected void do_button_actionPerformed(ActionEvent e) {
String arrayStr = textField.getText().trim(); //去除左右空格
if(arrayStr.equals("")){
JOptionPane.showMessageDialog(null, "請輸入數(shù)字內(nèi)容");
return;
}
for (int i = 0; i < arrayStr.length(); i++) { // 過濾非法輸入
char charAt = arrayStr.charAt(i);
if (!Character.isDigit(charAt) && charAt != ' ') {
JOptionPane.showMessageDialog(null, "輸入包含非數(shù)字內(nèi)容");
textField.setText("");
return;
}
}
String[] numStrs = arrayStr.split(" {1,}"); // 分割字符串
int[] numArray = new int[numStrs.length]; // 創(chuàng)建整型數(shù)組
// 轉(zhuǎn)換輸入為整型數(shù)組
for (int i = 0; i < numArray.length; i++) {
numArray[i] = Integer.valueOf(numStrs[i]);
}
int min = numArray[0]; // 創(chuàng)建最小數(shù)變量
for (int j = 0; j < numArray.length; j++) {
if (min > numArray[j]) { // 提取最小整數(shù)
min = numArray[j];
}
}
lblNewLabel_1.setText("數(shù)組中最小的數(shù)是:" + min); //顯示最小值到指定的標(biāo)簽中
}
}
效果如圖所示:
相關(guān)文章
idea中acitviti使用acitBPM插件出現(xiàn)亂碼問題及解決方法
這篇文章主要介紹了idea中acitviti使用acitBPM插件出現(xiàn)亂碼問題及解決方法,通過將File Encodings內(nèi)容設(shè)置為UTF-8,本文通過圖文展示,需要的朋友可以參考下2021-06-06SpringBoot調(diào)用Poi-tl實(shí)現(xiàn)渲染數(shù)據(jù)并生成Word文檔
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何調(diào)用Poi-tl實(shí)現(xiàn)渲染數(shù)據(jù)并生成Word文檔,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解下2023-09-09java中的equals()和toString()方法實(shí)例詳解
這篇文章主要介紹了java中的equals()和toString()方法實(shí)例詳解的相關(guān)資料,這里舉例說明,并附實(shí)例代碼,和實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-11-11Java的動(dòng)態(tài)代理和靜態(tài)代理及反射常用API詳解
這篇文章主要介紹了Java的動(dòng)態(tài)代理和靜態(tài)代理及反射常用API詳解,動(dòng)態(tài)代理是一種在運(yùn)行時(shí)動(dòng)態(tài)生成代理對象的技術(shù),它是一種設(shè)計(jì)模式,用于在不修改原始對象的情況下,通過代理對象來間接訪問原始對象,并在訪問前后執(zhí)行額外的操作,需要的朋友可以參考下2024-01-01