在Java中如何使字母等于索引号?

在Java中如何使字母等于索引号?,java,Java,我想把输入的字母变成一个数字 例如,“A”需要等于0,“B”需要等于1,“C”需要等于2,等等。请按照以下思路思考: 如果从'A'中减去'A',则得到0。如果从'B'中减去'A',则得到1。如果从'C'中减去'A',则得到2。等等 它能给你任何模式吗?可以使用此模式创建公式 试试你自己。发现一个公式 因为这似乎是家庭作业,我不会给你完整的答案。:-) 您可以将char强制转换为int,并用(int)“A”的值减去。 像这样: char z = 'Z' int number = (int) z -

我想把输入的字母变成一个数字


例如,“A”需要等于0,“B”需要等于1,“C”需要等于2,等等。

请按照以下思路思考:

如果从
'A'
中减去
'A'
,则得到
0
。如果从
'B'
中减去
'A'
,则得到
1
。如果从
'C'
中减去
'A'
,则得到
2
。等等

它能给你任何模式吗?可以使用此模式创建公式

试试你自己。发现一个公式


因为这似乎是家庭作业,我不会给你完整的答案。:-)

您可以将
char
强制转换为
int
,并用
(int)“A”的值减去。
像这样:

char z = 'Z'
int number = (int) z - (int) 'A';

所有字符都有一个int值,即它们的ASCII值。您可以将一个字符转换为一个int来获得该值(将一个int转换为一个char来反转该值)

根据我的意见,你可以这样做

int aAsciiValue = (int)'a';
char input = however you get your input;
int result = (int)input - aAsciiValue;
可以使用。提前准备字符与其索引之间的“关联”

public int letterToNumber(字符串字母){
public int letterToNumber(String letter) {
int letterNumber = letter.toLowerCase().toCharArray()[0] - 'a' + 1;
if (letterNumber < 1 || letterNumber > 26) {
    return 0;// Not a letter from a-z
}
return letterNumber;
}
int letterNumber=letter.toLowerCase().toCharArray()[0]-“a”+1; 如果(字母编号<1 | |字母编号>26){ 返回0;//不是来自a-z的字母 } 返回信号; }
在Java中查找'enum'或'enumeration'。将其转换为
字符
并获取它们的数字,然后从它们中减去'a'的数字(假设它们都是小写),就完成了。可以通过多种方式完成。到目前为止你尝试了什么?很好的解决方案。。。。但如果用户通过myChar=e,它将不起作用。。。较低的字符…@Jayamohan更改为处理案例+1“我不会给你完整的答案”和简单的答案请不要添加家庭作业标签,这是不推荐的。这方面我还不太熟悉。不是一个全职程序员,只是一个高中生。但我希望你能帮我弄清楚我在这里做什么(这应该是一个抽签游戏):int player='X';loc=input.nextLine();标记[loc.charAt(1)-1][loc.charAt(0)-A']player@user1972720字体我相信你能做到。即使是高中生也能做到。问你自己这样一个问题:如果有人给你一个
char
,说它是
x
,并且它也在
'a'
'Z'
之间,那么你会如何处理
x
来获得所需的数字?唯一的问题是您必须确保
x
必须介于
'A'
'Z'
之间。请注意,
'A'
'A'
不同。它们有不同的整数值(称为ascii值)…@Nawaz我猜我必须减去'A'?
public int letterToNumber(String letter) {
int letterNumber = letter.toLowerCase().toCharArray()[0] - 'a' + 1;
if (letterNumber < 1 || letterNumber > 26) {
    return 0;// Not a letter from a-z
}
return letterNumber;
}