Java中怎么样检查一个字符串是不是数字呢
问题:Java中怎么样检查一个字符串是不是数字呢
在解析之前,怎么样检查一个字符串是不是数字呢
回答一
这些通常是由一个简单的用户自定义函数去解决的(即,自带的 “isNumeric” 函数)
例如
public static boolean isNumeric(String str) { try { Double.parseDouble(str); return true;} catch(NumberFormatException e){ return false; }
}
但是,如果你整天调用这个函数,并且你又希望这个检查是由于不是一个数字而失败抛出异常,那么那个机制性能不会很好的,因为你每次失败都要抛出异常,这是一个代价很大的操作
一个可供替代的选择就是使用正则表达式去检查是否为数字
public static boolean isNumeric(String str) {return str.matches("-?\\d+(\\.\\d+)?"); //match a number with optional '-' and decimal.
}
对于正则表达式的机制可千万要小心,因为它会失败的,如果你用的不是阿拉伯字母(即数字0到9).这是因为“/d”那部分正则表达式只匹配0-9的,并且它也不能有效地识别到国际上数字
或者另一个可供替代的选择就是用java.text.NumberFormat 这个对象了,我们可以检查 parser position的位置是否在字符串的末尾。如果是的话,我们就可以认为整个字符串都是一个数字了
public static boolean isNumeric(String str) {
NumberFormat formatter = NumberFormat.getInstance();
ParsePosition pos = new ParsePosition(0);
formatter.parse(str, pos);
return str.length() == pos.getIndex();
}
回答二
在Apache Commons Lang 3.5 以上的版本: NumberUtils.isCreatable 或者 StringUtils.isNumeric.
在Apache Commons Lang 3.4 以下的版本: NumberUtils.isNumber 或者 StringUtils.isNumeric.
你也可以使用StringUtils.isNumericSpace,它会在空字符串的情况下返回true并且忽略字符串内部的空格。另一个方法就是使用Java中经常用来检查是否可被解析为数字的NumberUtils.isParsable(链接中的Java文档包含每种方法的详细实例)
文章翻译自Stack Overflow:https://stackoverflow.com/questions/1102891/how-to-check-if-a-string-is-numeric-in-java
Java中怎么样检查一个字符串是不是数字呢相关推荐
- java怎么统计随机数出现次数,Excel统计出现次数、个数的VBA代码 java中怎么判断一个字符串中包含某个字符或字...
延伸:java中怎么判断一个字符串中包含某个字符或字符 描述:...一个字符串中包含某个字符的单词说出现的次数 c#什么方法可以判断字符串中包含某个字符的个数? JAVA判断字符串数组中是否包含某字符 ...
- java中的字符,字符串,数字之间的转换(亲测)
string 和int之间的转换 string转换成int :Integer.valueOf("12") int转换成string : String.valueOf(12) ch ...
- java中的字符,字符串,数字之间的转换
java中的字符,字符串,数字之间的转换 string 和int之间的转换 string转换成int :Integer.valueOf(" ") int转换成string : St ...
- Java中如何输入一个字符串
Java中如何输入一个字符串 首先需导入java.util包中的Scanner类,如图: 接着在main里创建Scanner类对象,记得要把System.in加上这是专门获取用户输入的内容的,它会交给 ...
- java初始化字符串数组_在java中如何定义一个字符串数组
展开全部 1. java中定义一个字符串数组方式如32313133353236313431303231363533e59b9ee7ad9431333366306465下,string类型和其他基本类型 ...
- JAVA中如何判断一个输入是数字(小数和整数)还是字符串?
public class Test1 { public static void main(String[] args) { Scanner input = new Scanner(Sy ...
- Java中如何判断一个字符串是否为数字
方法一:异常处理 public static boolean isInteger(String str){try {Integer i = Integer.parseInt(str);return t ...
- java 字符串拆分技巧_在java中如何拆分一个字符串?
"004-034556"为例用String#split()方法即可: String string = "004-034556"; String[] parts ...
- Java中实现统计一个字符串在另一个字符串中出现的次数统计
public int getSubNum(String a,String b){int num=0;String str=a;int index=a.indexOf(b);while(index!=- ...
最新文章
- python插件下载地址
- python简单编程例子-中文方便就用中文编程!Python图形界面开发实例
- 数据中心空调故障案例集
- pdf html5 阅读进度,HTML5的进度条progress元素
- 解密NTFS下经EFS加密的文件
- 说说如何使用 Ant 把文件推送到 Linux
- BZOJ#3252. 攻略
- POI创建的文档具有不同条件的灵活样式
- 练习-用户模块-注册与登陆 190907
- cuda 和 cudnn 下载与安装
- 为什么外链建设要灵活多变呢?
- Xilinx SDK 初学之–API函数笔记(AXI_GPIO)
- Qt学习之自定义控件——颜色下拉框
- 思科模拟器:路由器基本配置
- Noiseware 5 降噪滤镜
- WPS设置章节多级标题自动编号(详细实用)
- 需要network lightweight filter disk 上的文件netft.sys
- 【网络】正向代理和反向代理
- 白杨SEO:谈谈如何让微信公众号排版设计好看又实用?
- linux内核安装编译