请教一个JAVA简单程序的问题
各位大神见笑。。。程序需要如下功能:
连续输入几个数字 并从大到小排序 并输出排序结果
目前我的问题出在 如何判断用户输入的内容为非数字
就比如 用户输入的是…#¥% 就输出对话框 提示输入错误并重新输入
我的程序目前如果输入的是非数字的话 就直接崩溃了
我需要实现这个功能:当用户输入的内容为非数字的时候 就提示对话框输入错误
最好用IF 语句 其他的方法也可以
我的程序如下:
import javax.swing.JOptionPane;
public class xxx{
public static void main(String[] args) {
JOptionPane.showMessageDialog(null,"请输入20个数字");
String[] inputString = new String[20];
int[] ints = new int[20];
for (int k = 0; k < 20; k++) {
inputString[k] = JOptionPane.showInputDialog(null,"请输入第"+(k + 1)+"个数字");
ints[k] = Integer.parseInt(inputString[k]);
}
int temp;
for (int i = 0; i < 20; i++) {
for (int j = i + 1; j < 20; j++) {
if (ints[i] > ints[j]) {
temp = ints[i];
ints[i] = ints[j];
ints[j] = temp;
}
}
}
String str = "";
for(int i = 0; i < 20; i++){
str = "" + str + ints[i] +",";
}
JOptionPane.showMessageDialog(null,"从小到大的排序结果为"+str);
}
}
求大神帮助 万分感谢 --------------------编程问答-------------------- if(!s2.matches("\\d+")){
System.out.println("请输入数字");} --------------------编程问答--------------------
正解! --------------------编程问答-------------------- 这里是有关正则表达式的使用,
查看java api 搜索类Pattern,里面有关于一些正则表达式的讲解。
如:
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
--------------------编程问答-------------------- 方法有很多种
1.把输入的字符一个个转成 char 类型,然后跟 (char)0和(char)9 比较,或者调用 Character.isDigit(char类型)判断
2.把输入的字符转换成 int 类型,添加上 try...catch ,如果不报异常 返回true反之返回false,然后根据返回值判断
3.最简单的方法 正则表达式 --------------------编程问答-------------------- 感谢您提供的方法 谢谢 --------------------编程问答-------------------- 感谢您提供的方法 谢谢 --------------------编程问答-------------------- 多谢了! --------------------编程问答-------------------- 用正则表达式
补充:Java , Java相关