Max*_*eng 10 java string enums compare
我有一份美国所有州的枚举列表如下:
public enum State
{ AL, AK, AZ, AR, ..., WY }
Run Code Online (Sandbox Code Playgroud)
在我的测试文件中,我将从包含状态的文本文件中读取输入.由于它们是字符串,我如何将它与枚举列表的值进行比较,以便为我设置的变量赋值:
private State state;
Run Code Online (Sandbox Code Playgroud)
我知道我需要通过枚举列表.但是,由于值不是字符串类型,您如何比较它?这就是我盲目打字的原因.我不知道它是否正确.
public void setState(String s)
{
for (State st : State.values())
{
if (s == State.values().toString())
{
s = State.valueOf();
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
mae*_*tr0 25
试试这个
public void setState(String s){
state = State.valueOf(s);
}
Run Code Online (Sandbox Code Playgroud)
如果"s"值与任何"State"不匹配,您可能希望处理可能抛出的IllegalArgumentException
使用.name()方法。喜欢st.name()。例如,State.AL.name()返回字符串“ AL”。
所以,
if(st.name().equalsIgnoreCase(s)) {
Run Code Online (Sandbox Code Playgroud)
应该管用。
| 归档时间: |
|
| 查看次数: |
40213 次 |
| 最近记录: |