Java:如何检查字符串第n个位置的字符是字母还是数字?

时间:2013-01-08 09:56:42

标签: java string char

假设我有这个字符串:“abcd123fx”。 现在,我想制作一个方法,检查(按顺序)“a”,“b”,“c”,“d”等是否为数字,如果不是,则返回false。我不知道如何按顺序处理char的第n个位置和每个char的位置。

10 个答案:

答案 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

检查this page

答案 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;
}