A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

判断输入的是字符还是数字,我的代码如下,但是好像还不是很完善,希望大神提出更完善的方法。
  1. /**
  2. * 判断输入的是字符串还是数字
  3. * @author Administrator
  4. *
  5. */
  6. public class TestNumber01 {
  7.         public static void main(String[] args) {
  8.                 Scanner in = new Scanner(System.in);
  9.                 System.out.println("请输入:");
  10.                 String str = in.nextLine();
  11.                 if (isNum(str)) {
  12.                         System.out.println("你输入的是数字");
  13.                 } else {
  14.                         System.out.println("你输入的是字符串");
  15.                 }
  16.         }
  17.         public static boolean isNum(String str) {
  18.                 Pattern p = Pattern.compile("-?[0-9]+.?[0-9]*[^A-Za-z]");
  19.                 Matcher m = p.matcher(str);
  20.                 if(m.matches()){
  21.                         return true;
  22.                 }else{
  23.                         return false;
  24.                 }
  25.         }
  26. }
复制代码

3 个回复

倒序浏览
代码我就不写了,这里给你提点建议:
1.正则里数字可以用\d表示,加上转义字符就是"\\d"
2.小数点要用\.表示,加上转义字符就是"\\.","."代表的是任意字符。
3.简单的匹配判断没必要使用Pattern类,直接使用String的matches()方法就行了。
回复 使用道具 举报
李天富 发表于 2014-12-14 19:42
代码我就不写了,这里给你提点建议:
1.正则里数字可以用\d表示,加上转义字符就是"\\d"
2.小数点要用\.表 ...

多谢指教,正则还要再研究研究。
回复 使用道具 举报
楼主加油!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马