假设我有这个字符串:“abcd123fx”。 现在,我想制作一个方法,检查(按顺序)“a”,“b”,“c”,“d”等是否为数字,如果不是,则返回false。我不知道如何按顺序处理char的第n个位置和每个char的位置。
答案 0 :(得分:6)
您可以使用字符类检查字符是否为数字字母。
String text = ...
char ch = texct.charAt(nth);
if (Character.isLetter(ch)) {
// is a letter
} else if (Character.isDigit(ch)) {
// is a digit
}
注意:这些方法支持unicode的不同块中的字符。例如它将接受阿拉伯语或韩语字符。
答案 1 :(得分:3)
查看文档。您可以使用charAt功能。
答案 2 :(得分:2)
if (Character.isLetter(yourString.charAt(index)))
// ... Letter
if (Character.isDigit(yourString.charAt(index)))
// ... Number
答案 3 :(得分:2)
有几种方法可以做到这一点。最简单的可能就是:
Character.isDigit(someString.charAt(x))
or a regex way would be someString.substring(x,x).matches("[0-9]")
答案 4 :(得分:2)
要获取字符串的第n个字符,您应该使用charAt,您应该使用Charachter的isLetterOrDigit。
通常,当您遇到这些问题时,您应该搜索javadoc以寻找合适的方法。
答案 5 :(得分:2)
查看oracle.com上的Java tutorials以获取更多信息。
专门针对此主题:
答案 6 :(得分:2)
- 正如你所说的那样,你是一个新手,我不会使用Regex
来复杂化,但是会使用内置的Java功能来解决这个问题
- 首先使用subString()
方法获取String的“abcd”部分,然后使用toCharArray()
方法将String
分解为{{1 }}}元素,然后使用char
类的Character
方法来了解它是否为数字。
<强>例如强>
isDigit()
答案 7 :(得分:1)
您还可以查看ASCII表
根据这个,您可以编写一个方法:
private boolean isNumber(char a) {
int i = a;
if(i >= 48 && i <=57)
return true;
else
return false;
}
// now you can look by a String
private void checkString() {
String x = "abcd123fx ";
for(char counter : x.toCharArray())
System.out.println(isNumber(counter));
}
答案 8 :(得分:1)
这可能对您有所帮助
public static boolean isNumeric(String str) {
return str.matches("-?\\d+(.\\d+)?");
}
public static void main(String[] args){
System.out.println(isNumeric("abcd123fx"));
}
如果您有数字字符串,则返回true,否则返回false
答案 9 :(得分:1)
public static void main(String[] args){
System.out.println(checkNumber("123a44"));
}
public static boolean checkNumber(String s){
for(int i = 0; i < s.length(); i++){
if(Character.isDigit(s.charAt(i))){
continue;
}
else{
return false;
}
}
return true;
}