如何在Java中将char映射为int

问题描述 投票:1回答:2

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

我有一个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; 
        }   
}
java switch-statement
2个回答
2
投票

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

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

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

char字节(十进制)char值-97一个97 098 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;
}

0
投票

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

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

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

int x = Integer.parseInt(String.valueOf('a')); 
© www.soinside.com 2019 - 2024. All rights reserved.