java字符串数字判断
① java中判断字符串是否为数字的几种方法
1.使用Character.isDigit(char)判断
char num[] = str.toCharArray();//把字符串转换为字符数组
StringBuffer title = new StringBuffer();//使用StringBuffer类,把非数字放到title中
StringBuffer hire = new StringBuffer();//把数字放到hire中
for (int i = 0; i < num.length; i++) {
// 判断输入的数字是否为数字还是字符
if (Character.isDigit(num[i])) {把字符串转换为字符,再调用Character.isDigit(char)方法判断是否是数字,是返回True,否则False
hire.append(num[i]);// 如果输入的是数字,把它赋给hire} else {title.append(num[i]);// 如果输入的是字符,把它赋给title}}}
2.使用类型转换判断try {String str="123abc";
int num=Integer.valueOf(str);//把字符串强制转换为数字
return true;//如果是数字,返回True
} catch (Exception e) {
return false;//如果抛出异常,返回False}
3.使用正则表达式判断
String str = "";
boolean isNum = str.matches("[0-9]+");
//+表示1个或多个(如"3"或"225"),*表示0个或多个([0-9]*)(如""或"1"或"22"),?表示0个或1个([0-9]?)(如""或"7")
ps:这个方法只能用于判断是否是正整数
② java中验证字符串是不是数字的四种方法
判断字符串是不是数字,大家可能会用一些java自带的方法,也有可能用其他怪异的招式,比如判断是不是整型数字,将字符串强制转换成整型,不是数字的就会抛出错误,那么就不是整型的了。但本文介绍的比较好的两种方法:
1。java类库自带的方法:
public boolean isNum(String msg){
if(java.lang.Character.isDigit(msg.charAt(0))){
return true;}return false;}0202更新:发现以上方法写得不够到位,现在就改为下面的简单说明了,至于具体的方法实现字符串判断是否数字就不写了。
java.lang.Character.isDigit(char ch) boolean
isDigit 只能作用于char,所以判断字符串是否为数字,要一个一个拿出char进行判断。
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;}02
3。用正则表达式
③ Java 中怎样判断一个字符串全是数字
Java中判断字符串是否全是数字:
可以使用正则表达式:
publicbooleanisNumeric(Stringstr){
Patternpattern=Pattern.compile("[0-9]*");
MatcherisNum=pattern.matcher(str);
if(!isNum.matches()){
returnfalse;
}
returntrue;
}
但是这个方法并不安全,没有对字符串进行空校验。
在程序执行的时候很容易抛出异常。
例如执行:
publicstaticvoidmain(String[]args){
Stringstr=null;
System.out.println(BarcodeChecksum.INSTANCE.isNumeric(str));
}
就会抛出异常:
Exceptioninthread"main"java.lang.NullPointerException
atjava.util.regex.Matcher.getTextLength(Matcher.java:1140)
atjava.util.regex.Matcher.reset(Matcher.java:291)
atjava.util.regex.Matcher.<init>(Matcher.java:211)
atjava.util.regex.Pattern.matcher(Pattern.java:888)
atcom.ossez.bcu.util.BarcodeChecksum.isNumeric(BarcodeChecksum.java:37)
atcom.ossez.bcu.util.BarcodeChecksum.main(BarcodeChecksum.java:53)
所以这个方法并不准确。
如果执行:
publicstaticvoidmain(String[]args){
Stringstr="";
System.out.println(BarcodeChecksum.INSTANCE.isNumeric(str));
}
将会返回 true。
这说明这个方法没有对空字符串进行校验。
可以使用 Apache 的 StringUtils.isNumeric() 函数进行判断。
这个函数位于 org.apache.commons.lang.StringUtils; 中。
但是,需要注意,如果传入参数为 "" 同样也会你存在判断不准确的情况,这时候需要首先对需要进行判断的参数进行非空校验,然后删除传入数据中的空格。
publicstaticvoidmain(String[]args){
Stringstr="";
System.out.println(StringUtils.isNumeric(str));
}
上面这个函数将会返回 true。
请先 trim 数据
④ java中怎么判断字符串是否全部为数字
答案:可以使用Java中的正则表达式来判断字符串是否全部为数字。具体可以使用`matches`方法和正则表达式`"^[0-9]+$"`来判断。如果返回`true`,则表示字符串全部为数字;如果返回`false`,则表示字符串不全是数字。
详细解释:
1. 正则表达式简介:正则表达式是一种强大的文本处理工具,它使用特定的模式来描述一系列字符串的特征。在Java中,可以使用正则表达式来进行字符串的匹配、查找和替换等操作。
2. 判断字符串是否全为数字的方法:要判断一个字符串是否全部由数字组成,可以使用Java中的`String`类的`matches`方法,结合正则表达式`"^[0-9]+$"`来进行判断。这个正则表达式的含义是:从字符串的开始`^`到结束`$`,中间只能包含一位或多位数字。
3. 代码示例:下面是一个简单的Java代码示例,展示了如何使用正则表达式判断字符串是否全部为数字。
java
public class StringNumericCheck {
public static void main {
String str1 = "123456";
String str2 = "123a456";
System.out.println); // true,因为str1全是数字
System.out.println); // false,因为str2包含非数字字符
}
}
4. 结果解读:如果`matches`方法返回`true`,则表示字符串中的每个字符都是数字;如果返回`false`,则表示字符串中包含非数字字符。通过这种方式,可以方便地判断一个字符串是否完全由数字构成。