java 关于字符串是否为数字的判断
对于给定的字符串,要对其是否为数字的判断,一般常用的方法有:
1.使用基本类型的封装类的转化方法,进行判断,如果有异常抛出,则不为数字,否则为数字。由于无法确定数字位数,该方法不建议使用,防止超过该类型的最大上限。
例如:
public static void main(String[] args) {
String str = "1234";
try {
double d1 = Double.parseDouble(str);
//float f1 = Float.parseFloat(str);
//int i1 = Integer.parseInt(str);
System.out.println("该字符串是数字!");
} catch (Exception e) {
System.out.println("该字符串不是数字!");
}
}
2.将字符串转化为字符数组,遍历字符数组,判断是否为数字
例如:
public static void main(String[] args) {
String str = "1234";
char[] chs = str.toCharArray();
for (int i = 0; i < chs.length; i++) {
if(!Character.isDigit(chs[i])){
System.out.println("该字符串不是数字!");
System.exit(0);
}
}
System.out.println("该字符串是数字!");
}
3.将字符串转化为字符数组,遍历字符数组,利用ASASCII码进行判断
例如:
public static void main(String[] args) {
String str = "1234";
char[] chs = str.toCharArray();
for (int i = 0; i < chs.length; i++) {
if(chs[i]<48||chs[i]>57){
System.out.println("该字符串不是数字!");
System.exit(0);
}
}
System.out.println("该字符串是数字!");
}
4.使用正则表达式进行判断
例如:
public static void main(String[] args) {
String str = "1234";
String reg = "^[0-9]*$";
if(str.matches(reg)){
System.out.println("该字符串是数字!");
}else{
System.out.println("该字符串不是数字!");
}
}