当前位置:编程学习 > JAVA >>

请教一个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("请输入数字");} --------------------编程问答--------------------
引用 1 楼  的回复:
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.最简单的方法 正则表达式 --------------------编程问答-------------------- 感谢您提供的方法 谢谢
引用楼主  的回复:
各位大神见笑。。。

程序需要如下功能:
连续输入几个数字 并从大到小排序 并输出排序结果

目前我的问题出在 如何判断用户输入的内容为非数字
就比如 用户输入的是…#¥% 就输出对话框 提示输入错误并重新输入
我的程序目前如果输入的是非数字的话 就直接崩溃了 

我需要实现这个功能:当用户输入的内容为非数字的时候 就提示对话框输入错误 
最好用IF 语句 其他的方法也可以 
……
--------------------编程问答-------------------- 感谢您提供的方法 谢谢
引用 1 楼  的回复:
if(!s2.matches("\\d+")){
System.out.println("请输入数字");}
--------------------编程问答-------------------- 多谢了!
引用 4 楼  的回复:
方法有很多种

1.把输入的字符一个个转成 char 类型,然后跟 (char)0和(char)9 比较,或者调用 Character.isDigit(char类型)判断

2.把输入的字符转换成 int 类型,添加上 try...catch ,如果不报异常 返回true反之返回false,然后根据返回值判断

3.最简单的方法 正则表达式
--------------------编程问答-------------------- 用正则表达式
补充:Java ,  Java相关
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,