假设我有这个字符串:“abcd123fx”。现在,我想创建一个方法来检查(按顺序)“a”、“b”、“c”、“d”等是否是数字,如果不是,则返回 false。我不知道如何按顺序处理 char 的第 n 个位置以及每个 char 的位置。
问问题
5855 次
10 回答
6
您可以使用 Character 类检查字符是否为数字字母。
String text = ...
char ch = texct.charAt(nth);
if (Character.isLetter(ch)) {
// is a letter
} else if (Character.isDigit(ch)) {
// is a digit
}
注意:这些方法支持 unicode 不同块中的字符。例如,它将接受阿拉伯语或韩语字符。
于 2013-01-08T10:00:20.543 回答
3
检查文档。您可以使用charAt函数。
于 2013-01-08T09:59:43.383 回答
2
要获取字符串的第 n 个字符,您应该使用charAt,您应该使用 Charachter 的isLetterOrDigit。
通常,当您遇到这些问题时,您应该搜索 javadoc 以寻找合适的方法。
于 2013-01-08T10:02:26.127 回答
2
查看oracle.com 上的Java 教程以获取更多信息。
专门针对这个主题:
于 2013-01-08T10:04:20.543 回答
2
-正如你所说你是一个新手,我不会让这个复杂使用Regex
,但会使用内置的 Java 功能来回答这个问题。
-先用subString()
method获取String的“abcd”部分,再用toCharArray()
method分解String
成char
元素,再用Character
class的isDigit()
方法判断是不是数字。
例如:
public class T1 {
public static void main(String[] args){
String s = "abcd123fx";
String str = s.substring(0,4);
System.out.println(str);
char[] cArr = str.toCharArray();
for(char a :cArr){
if(Character.isDigit(a)){
System.out.println(a+" is a digit");
}else{
System.out.println(a+" is not a digit");
}
}
}
}
于 2013-01-08T10:05:22.363 回答
2
if (Character.isLetter(yourString.charAt(index)))
// ... Letter
if (Character.isDigit(yourString.charAt(index)))
// ... Number
检查此页面
于 2013-01-08T10:00:33.643 回答
2
那么有几种方法可以做到这一点。最简单的可能是这样的:
Character.isDigit(someString.charAt(x))
or a regex way would be someString.substring(x,x).matches("[0-9]")
于 2013-01-08T10:02:11.190 回答
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;
}
于 2013-01-08T10:08:54.297 回答
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
于 2013-01-08T10:03:05.953 回答
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));
}
于 2013-01-08T10:00:10.600 回答