java - 如何通过将整行与枚举值进行比较来解析整行?
问题描述
我有一个来自文件的输入字符串,如下所示:
Hey_world__Welcome::To the java
Hello::World
和枚举如下:
public enum Enum {
Hey_world, Hello
}
我必须比较字符串中的枚举值,如果字符串中存在枚举,它应该只在输出中打印该特定字符串。
我试过这样的事情:
if(Enum.valueOf((str.split("::")[0]).split("__")[0]).equals(Enum.Hey_world)) {
System.out.println(string); //should return string(Hey_world__Welcome::To the java)
}
else if(Enum.valueOf(str.split("::")[0]).equals(Enum.Hello)){
System.out.println(string); //should return string(Hello::World)
}
解决方案
您可以像这样使用正则表达式。
Pattern p = Pattern.compile(
Arrays.stream(Enum.values())
.map(e -> e.toString())
.collect(Collectors.joining("|")));
String str1 = "Hey_world__Welcome::To the java";
String str2 = "Hello::World";
if (p.matcher(str1).find())
System.out.println(str1);
if (p.matcher(str2).find())
System.out.println(str2);
推荐阅读
- python - Requests 返回 Too Many Requests 状态码
- python - 在python中组合两个多行字符串
- python - 如何根据其他数据框行值广播数据框行值?
- android - 我想在我的 Android 应用程序中使用蓝牙邻近功能添加联系人跟踪功能,例如 arogya setu 应用程序?
- kibana - vega lite 中的 KibanaSetTimeFilter
- python - Django中的属性错误
- php - 数据库类和 bindParam
- macos - mac os服务器安装过程中出现问题
- java - 单击关闭按钮时会出现一个框架
- javascript - 如何将 if 语句放在其他 if 语句中?