如何在Java中将字符串与枚举类型进行比较?

问题描述

试试这个

  1. public void setState(String s){
  2. state = State.valueOf(s);
  3. }

您可能要处理IllegalArgumentException,如果“ s”值与任何“ State”都不匹配,则可能引发该异常

解决方法

我有一个美国所有州的枚举列表,如下所示:

  1. public enum State
  2. { AL,AK,AZ,AR,...,WY }

在测试文件中,我将从包含状态的文本文件中读取输入。由于它们是字符串,因此如何将其与枚举列表的值进行比较,以便将值分配给我设置为的变量:

  1. private State state;

我了解我需要浏览枚举列表。但是,由于值不是字符串类型,如何比较?这就是我盲目输入的内容。我不知道这是否正确。

  1. public void setState(String s)
  2. {
  3. for (State st : State.values())
  4. {
  5. if (s == State.values().toString())
  6. {
  7. s = State.valueOf();
  8. break;
  9. }
  10. }
  11. }

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”