Java 从流中读取关键字的正确方法
我需要读一条小溪。此流正在转换为带有缓冲读取器的字符串。在阅读此流时,对于一些特定的关键字,我需要给出一个特定的消息。 如果我在读取流时发现“网络错误”,我需要给出“连接中有错误” 但我的问题是,如果有1000个特定的关键字,那么我必须写出1000个“如果”条件 我认为我们无法管理属性文件,因为我们必须使用密钥引用。不是像“网络错误”这样的词 是否有适当的方法在没有if条件的情况下执行此操作Java 从流中读取关键字的正确方法,java,jakarta-ee,Java,Jakarta Ee,我需要读一条小溪。此流正在转换为带有缓冲读取器的字符串。在阅读此流时,对于一些特定的关键字,我需要给出一个特定的消息。 如果我在读取流时发现“网络错误”,我需要给出“连接中有错误” 但我的问题是,如果有1000个特定的关键字,那么我必须写出1000个“如果”条件 我认为我们无法管理属性文件,因为我们必须使用密钥引用。不是像“网络错误”这样的词 是否有适当的方法在没有if条件的情况下执行此操作 请回复我您可以使用HashMap,键作为关键字,值作为特定消息。嘿,您不需要任何属性文件。您只能使用枚举
请回复我您可以使用
HashMap
,键作为关键字,值作为特定消息。嘿,您不需要任何属性文件。您只能使用枚举、HashMap
处理此问题。
您可以做的是,首先创建一个包含值中所有关键字和特定消息的enum
。创建一个包含enum和要替换的值的映射。迭代关键字,如果这些关键字包含在流中,则替换它们
下面是可以帮助您解决问题的示例代码
关键字enum.java
public enum KeyWordEnum{
NETWORK_ERROR;
public String toString(){
if(NETWORK_ERROR){
return "Network Error";
}
}
}
现在,在Test.java类中:
public String getReplacedStream(String stream){
Map<KeyWordEnum, String> keyWordMapWithValue = new HashMap<KeyWordEnum String>();
keyWordMapWithValue.put(KeyWordEnum.NETWORK_ERROR,"There is an error in connection");
// Replace all the keywords from the map.
for(KeyWordEnum key : keyWordMapWithValue.keySet()){
if(stream.contains(key.toString())){
stream.replaceAll(key.toString(), key.getValue());
}
}
return stream;
}
公共字符串getReplacedStream(字符串流){
Map关键字MapWithValue=新HashMap();
关键字mapWithValue.put(关键字enum.NETWORK_ERROR,“连接中有错误”);
//替换地图中的所有关键字。
for(关键字枚举键:关键字映射WithValue.keySet()){
if(stream.contains(key.toString())){
stream.replaceAll(key.toString(),key.getValue());
}
}
回流;
}
networkerrorskdfkdfk实际上,此流包含一个html响应。非常感谢您的回答