我必须解决以下问题:
我需要从角色中获取特定的int号。但不是ASCII int值。(会很容易)
例如:我知道'A'在ASCII中是65。但是我需要它将值从“A”设置为1或10或者不使用ASCII。 所以在这种情况下,字母表中的所有字符都应该是1'A'-26'Z'的值。
我有一些想法,但我认为他们应该像switch(x)这样的26个案例,如...案例'A':z = 1; break;等等(但如果你迭代一段时间效率很低)。
我知道有一种方法可以在没有ascii和switch的情况下解决它...我忘记了。但我不知道我需要搜索什么口号。 我不想要一个完整的解决方案,就像更多的小提示或思考的食物。
感谢您的每一个答案。
来自德国的格雷茨
答案 0 :(得分:1)
我建议Map<Character, Integer>
。您可以将“整数”值分配给“字符”,并且始终可以使用Map界面中的简单getValue()方法获取它。
答案 1 :(得分:0)
您可以尝试使用enum
。当您为枚举使用构造函数时,您可以为每个字母分配所需的值。
public enum Alphabet {
A(1), B(2), C(3), D(4), ... Z(26);
private int _value;
Alphabet(int value) {
_value = value;
}
public int value() {
return _value;
}
}
希望这有帮助!
答案 2 :(得分:0)
简单地将所有字母放在数组中,使用适当的序列
class Alphabet {
private final char[] alphabet;
public Alphabet(String letters) {
alphabet = letters.toCharArray();
}
public char letterBy(int number) {
return alphabet[number - 1];
}
public int length() {
return alphabet.length;
}
}
如果您输入 ABC 字母,您可以通过数字 A-1 B-2 C-3 检索它们,在方法letterBy()中我们会减少数字,因为数组从0开始计算。我们还有以字母表形式返回字母数量的方法。