我需要找出如何检查char是否为数字。问题是我不能使用除IndexOf,SubString,length,charAt等字符串方法之外的任何方法。
有没有人有想法?
答案 0 :(得分:3)
如果必须是String方法:
String n = "0123456789";
char c = 'a'; // As I don't know where your char will come from and in what format
int i = n.indexOf(c);
if(i != -1) {
System.out.println("Digit");
} else {
System.out.println("Not digit");
}
但是,从我的观点来看,我无法强调这是非常愚蠢和毫无意义的。
答案 1 :(得分:0)
您可以使用Character.isDigit()
。
如果你有一个字符串,你可以这样做:
Character.isDigit(yourString.charAt(index));
如果没有任何Character方法,您可以使用Regex:
s.substring(startIndex,endIndex).matches("[0-9]")
答案 2 :(得分:0)
您可以检查字符的UNICODE值:
char c = string.indexOf(...); // or other way to get the character
public static boolean isDigit(char c) {
return c => '0' || c <= '9';
}
答案 3 :(得分:0)
您可以根据 ASCII 值比较使用以下内容: -
String s = "123456ao";
char[] ss = s.toCharArray();
int intVal = 0;
for( char s1 : ss){
intVal = s1;
if(48 <= intVal && intVal < 58) // checking for ASCII values of numbers
System.out.println(s1+ " is Numeric");
else System.out.println(s1+ " is not Numeric");
}