java中如何判断输入的字符串是字符还是整数

java中如何判断输入的字符串是字符还是整数

问题描述:

我找到了判断字符的和转化成整数拼接的,就是不知道怎么去调用不用的方法

import java.util.Scanner;

public class check {
public static void main(String[] args) {
System.out.println("请输入需要判断的字符串");
Scanner sc=new Scanner(System.in);
String testStr=sc.next();
char[] test=testStr.toCharArray();
for (char c : test) {
int temp=(int)c;
if(temp57)
{
System.out.println("字符");
return;
}

    }
    System.out.println("整数");

}

}


可以通过异常 处理来判断
public static boolean isValidInt(String value) {

try {

Integer.parseInt(value);

} catch (NumberFormatException e) {

return false;

}

return true;

}

 Pattern pattern = Pattern.compile("^(\\-){0,1}\\d+(\\.\\d+){0,1}$");
Matcher matcher = pattern.matcher("123"); // 输入的字符串
boolean b= matcher.matches();

上面那个正则是浮点数,
整数
Pattern pattern = Pattern.compile("^(\-){0,1}\d+$");
正整数
Pattern pattern = Pattern.compile("^\d+$");

 上面那个正则是浮点数,
整数
Pattern pattern = Pattern.compile("^(\\-){0,1}\\d+$");
正整数
Pattern pattern = Pattern.compile("^\\d+$");

强转为整型,如果不发生异常就是整数,否则就是字符

Integer.parseInt(str);

Long.parseInt(str);

如果你的整数很大,超过了long型,可以用BigInteger

 public static boolean isInteger(String str) {
try {
new BigInteger(str);
} catch (NumberFormatException e) {
return false;
}
return true;
}