我对编程非常陌生,无法解决以下问题。
我有一个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;
}
}
如果您的字符与您提到的字符相同,则可以使用类似的字符。
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;
}
您可以通过其他方式获得它。
int x = Character.getNumericValue('a');
或
char a = 'a';
int x = a;
或
int x = Integer.parseInt(String.valueOf('a'));
您可以这样做:
class Main {
public static void main(String args[]) {
System.out.println(getNumber('c'));//test
}
static int getNumber(char ch) {
int num=-1;
switch(ch) {
case 'a':
num=0;
break;
case 'b':
num=1;
break;
case 'c':
num=2;
break;
case 'd':
num=3;
break;
case 'e':
num=4;
break;
case 'f':
num=5;
break;
case 'g':
num=6;
break;
case 'h':
num=7;
break;
}
return num;
}
}