使用char确定字母数字?

时间:2014-08-27 13:11:58

标签: java char uppercase alphanumeric

我有开头的字母Q和结束字母K。

我想这样增加:

Q,R,S,T...Z,0,1,2,3...9,A,B,C...K

我试过了:

        char start = 'Q';
        char end = 'K';

        while (start != end) {
            if((Character.isLetter(start) && Character.isUpperCase(start)) || (Character.isDigit(start))) {
                System.out.println(start);
            }
            start++
        }

这会打印中文字符......所以......

Â
ĕ
ƻ

我只想要大写字母和数字。 A-Z,0-9

我也试过了:

    if ((Character.getNumericValue(start) >= 10 && Character.getNumericValue(start) <= 35) 
&& Character.isUpperCase(start)|| (Character.getNumericValue(start) >= 0 &&  Character.getNumericValue(start) <= 9))

但是再次打印特殊字符和数字。

3 个答案:

答案 0 :(得分:2)

试试这个:

char start = 'Q';
char end = 'K';
char stopHere = end++;

while ( start != stopHere ){
    System.out.println(start);
    if( start == 'Z' ){
        start = '0';
    }
    else if( start == '9' ){
        start = 'A';
    }
    else{
        start++;
    }
}

这不是最好的答案,但这样可以解决。

答案 1 :(得分:0)

好的,谢谢Leo,我这样做了:

char[] charArray = {'A','B','C','D','E','F','G','H','I','J','K','L'
                            ,'M','N','O','P','Q','R','S','T','U','V','W','X',
                            'Y','Z','0','1','2','3','4','5','6','7','8','9'};
        char start = 'Q';
        char end = 'K';

        while (start != end+1) {
            for (int i=0; i<charArray.length; i++) {
                if(start == charArray[i]) {
                    System.out.println(start);
                }
            }
            start++;
        }

答案 2 :(得分:0)

如果您使用的是Apache Commons Lang,请尝试以下操作:

if (CharUtils.isAsciiAlphaUpper(start) && CharUtils.isAsciiNumeric(start)) {...}