如何在Java中将char映射到int

时间:2019-10-13 09:50:17

标签: java switch-statement

我对编程很陌生,无法解决以下问题。

我有一个char类型的坐标列表,需要将其转换为数字(int类型)。因此,例如char a应该为int 0,char b-int 1等。因此,我使用switch语句构建了以下代码。我想将其作为方法调用,但我不断收到以下错误:此方法必须返回int类型的结果。有人可以解释我在做什么错吗?我也尝试使用return而不是int .. = 0;但这也无济于事。

    int x () {
        char ch = 'c';
        switch (ch)
        { 
        case 'a': 
            int a = 0;
            break; 
        case 'b': 
            int b = 1;
            break; 
        case 'c': 
            int c = 2;
            System.out.println(c); 
            break; 
        case 'd': 
            int d = 3;
            break; 
        case 'e': 
            int e = 4;
            break; 
        case 'f': 
            int f = 5;
            break; 
        case 'g': 
            int g = 6;
            break; 
        case 'h': 
            int h = 7;
            break; 
        }   
}

2 个答案:

答案 0 :(得分:2)

如果您的字符与您提到的字符相同,则可以使用类似的字符。

static int toNumber(char chr) {
        return (chr - 97);
    }

概念是这样的:char被编码为字节,即数字。请查看相关的ASCII table,在其中您可以看到'a'的值为97(十进制),'b'的值为98 ...因此,如果我们从所有字符中减去97,则可以达到所需的值。


    char   byte(decimal)   char value -97
    a        97                  0
    b        98                  1
    ...      ...                ...
    z        122                 24

但是您的函数存在的问题是return语句丢失了。您可以通过将其更改为此来使其工作

int x() {
    char ch = 'c';
    int value = 0;
    switch (ch) {
        case 'a':
            value = 0;
            break;
        case 'b':
            value = 1;
            break;
        case 'c':
            value = 2;
            System.out.println(c);
            break;
        case 'd':
            value = 3;
            break;
        case 'e':
            value = 4;
            break;
        case 'f':
            value = 5;
            break;
        case 'g':
            value = 6;
            break;
        case 'h':
            value = 7;
            break;
    }
    return value;
}

答案 1 :(得分:0)

您可以通过其他方式获得它。

int x = Character.getNumericValue('a');  

char a = 'a';
int x = a;

int x = Integer.parseInt(String.valueOf('a')); 
相关问题