例如
在C中,我只是从'A'中减去char,但我似乎无法在java中执行此操作.
Eta*_*oin 24
indexOf在String对象上使用该方法.例如,
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf('F')
返回5.
jar*_*bjo 13
您也可以使用Java中的字符进行简单的数学运算:
System.out.println('A' - 'A');
Run Code Online (Sandbox Code Playgroud)
将输出0.
实际上,其他解决方案的弱点在于它们涉及字符串创建
public enum Alphabet {
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
}
Run Code Online (Sandbox Code Playgroud)
您现在可以使用序数函数来获取此处的偏移量.例如Alphabet.L.ordinal();
但是,由于我假设您正在处理函数,因此这是一个更有用的定义
public enum Alphabet {
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z;
public static int getNum(String targ) {
return valueOf(targ).ordinal();
}
public static int getNum(char targ) {
return valueOf(String.valueOf(targ)).ordinal();
}
}
Run Code Online (Sandbox Code Playgroud)
注意:与其他语言不同,您可以在它自己的文件中声明枚举,就像类一样.实际上,如上所示的枚举也可以包含字段和方法,这些字段是静态创建的,并且很难打破.事实上,使用仅有局部的方法和变量,并呼吁实例中的一个枚举类型的枚举的是创建一个单身,因为它是牢不可破的,即使通过反射的推荐方式.
如果您不控制对函数的调用,您可能还想考虑在那里滑动toUppercase()调用
如果您希望更动态地创建字母而不是使用预定义的字母表,那么您应该查看地图
| 归档时间: |
|
| 查看次数: |
29945 次 |
| 最近记录: |