在Java中怎么判断传递过来的字符串是否是数字,或者是否是字符串?(亲测)
Java中判断字符串是否全是数字:
1.用JAVA自带的函数
public static boolean isNumeric(String str){
for (int i = 0; i < str.length(); i++){
System.out.println(str.charAt(i));
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
2.用正则表达式
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
public boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}
3.使用org.apache.commons.lang
org.apache.commons.lang.StringUtils;
boolean isNunicodeDigits=StringUtils.isNumeric("aaa123456789");
http://jakarta.apache.org/commons/lang/api-release/index.html下面的解释:
isNumeric
public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false.
null will return false. An empty String ("") will return true.
StringUtils.isNumeric(null) = false
StringUtils.isNumeric("") = true
StringUtils.isNumeric(" ") = false
StringUtils.isNumeric("123") = true
StringUtils.isNumeric("12 3") = false
StringUtils.isNumeric("ab2c") = false
StringUtils.isNumeric("12-3") = false
StringUtils.isNumeric("12.3") = false
Parameters:
str - the String to check, may be null
Returns:
true if only contains digits, and is non-null
上面三种方式中,第二种方式比较灵活。
第一、三种方式只能校验不含负号“-”的数字,即输入一个负数-199,输出结果将是false;
而第二方式则可以通过修改正则表达式实现校验负数,将正则表达式修改为“^-?[0-9]+”即可,修改为“-?[0-9]+.?[0-9]+”即可匹配所有数字。
使用正则表达式:
1 2 3 4 5 6 7 8 |
|
但是这个方法并不安全,没有对字符串进行空校验。 在程序执行的时候很容易抛出异常。 例如执行:
1 2 3 4 5 6 |
|
就会抛出异常:
1 2 3 4 5 6 7 |
|
所以这个方法并不准确。 如果执行:
1 2 3 4 |
|
将会返回 true。 这说明这个方法没有对空字符串进行校验。 可以使用 Apache 的 StringUtils.isNumeric() 函数进行判断。 这个函数位于 org.apache.commons.lang.StringUtils; 中。 但是,需要注意,如果传入参数为 "" 同样也会你存在判断不准确的情况,这时候需要首先对需要进行判断的参数进行非空校验,然后删除传入数据中的空格。
1 2 3 4 |
|
上面这个函数将会返回 true。 请先 trim 数据
来源:https://www.cnblogs.com/pengzp97/p/10286435.html
在Java中怎么判断传递过来的字符串是否是数字,或者是否是字符串?(亲测)相关推荐
- 为什么说 Java 中只有值传递?
对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文章可以把这个事情讲解的通俗易懂. ...
- 为什么说Java中只有值传递(另一种角度)
转载自 为什么说Java中只有值传递 对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到 ...
- 为什么Java中只有值传递
原文链接:https://www.cnblogs.com/wchxj/p/8729503.html 在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了.如果你有以下想法,那么你有必要好好阅读本 ...
- 什么是值传递,什么是引用传递。为什么说Java中只有值传递。
关于这个问题,在StackOverflow上也引发过广泛的讨论,看来很多程序员对于这个问题的理解都不尽相同,甚至很多人理解的是错误的.还有的人可能知道Java中的参数传递是值传递,但是说不出来为什么. ...
- 为什么说Java中只有值传递
点击上方"程序员小灰",选择"置顶公众号" 有趣有内涵的文章第一时间送达! 本文转载自公众号 Hollis 对于初学者来说,要想把这个问题回答正确,是比较难的. ...
- 为什么大家都说Java中只有值传递?
最近跟Java中的值传递和引用传递杠上了,一度怀疑人生.查了很多资料,加上自己的理解,终于搞清楚了,什么是值传递和引用传递.也搞明白了,为什么大家都说Java只有值传递,没有引用传递.原来,我一直以来 ...
- java中是引用传递还是值传递....
刚才与Z师兄聊天,他提问: 你说java中是引用传递还是值传递啊? 当时俺搞混了这个"传递"的意思, 本来以为是对象的实例化比如: abc a=new abc(); 这个a 是引用 ...
- java怎么统计随机数出现次数,Excel统计出现次数、个数的VBA代码 java中怎么判断一个字符串中包含某个字符或字...
延伸:java中怎么判断一个字符串中包含某个字符或字符 描述:...一个字符串中包含某个字符的单词说出现的次数 c#什么方法可以判断字符串中包含某个字符的个数? JAVA判断字符串数组中是否包含某字符 ...
- java只有值传递_面试官:为什么 Java 中只有值传递?
1.为什么 Java 中只有值传递? 首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语.按值调用(call by value)表示方法接收的是调用者提供的值,而按引用调用(ca ...
最新文章
- python量化外汇交易_用Python实现一个Dual Thrust数字货币量化交易策略
- php for循环执行函数,自执行函数用for结束后面不能访问循环变量
- python工程师薪资坑吗-想转行,是要入坑Python还是Java?这问题还用问?
- mysql第五章项目二_Todo List:Node+Express 搭建服务端毗邻Mysql – 第五章(第1节)
- 在上级对自己做绩效评估之前
- Go设计模式之Factory
- 前端解决第三方图片防盗链的办法 - html referrer 访问图片资源 403 问题
- 国产计算机设备,国产计算机报价
- java开发按键精灵_一个使用JAVA编写的类似按键精灵的程序
- python爬取微信好友教程_Python爬取微信好友
- 服务器重装Linux系统详细图文教程(centos7)
- 分数阶麻雀搜索算法-附代码
- python-matplotlib 绘制函数曲线
- 【Excel】提取中/英文字符
- winRE环境下使用xcopy时显示未找到文件
- 在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?
- 怎么在mysql查看运行日志_如何查看mysql运行、访问记录等日志
- 白光干涉仪(光学3D表面轮廓仪)与台阶仪的区别
- foxmail国外只能收邮件,不能发邮件
- 九章算术 四:《少广》
热门文章
- 经典C语言程序100例之七七
- 深入理解计算机系统 第三章笔记,《深入理解计算机系统》笔记.PDF
- python中的rstrip函数_Python strip() lstrip() rstrip() 函数 去除空格
- java sum_java math.sum
- 「MacOS」Mac快捷键
- 13-19 Python Number、Python字符串、Python列表(List)、集合的基本操作、元组、字典Dicttionnary、日期和时间
- 18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景
- 一步步创建Qt Widget项目+TextFinder案例(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)
- 1.网络工具:ifconfig,ping,netstate,Redhat命令和图形化设置ip,finger,nslookup
- amd为什么还用针脚_为什么intel处理器不用针脚,AMD还一直使用针脚呢?