Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从流中读取关键字的正确方法_Java_Jakarta Ee - Fatal编程技术网

Java 从流中读取关键字的正确方法

Java 从流中读取关键字的正确方法,java,jakarta-ee,Java,Jakarta Ee,我需要读一条小溪。此流正在转换为带有缓冲读取器的字符串。在阅读此流时,对于一些特定的关键字,我需要给出一个特定的消息。 如果我在读取流时发现“网络错误”,我需要给出“连接中有错误” 但我的问题是,如果有1000个特定的关键字,那么我必须写出1000个“如果”条件 我认为我们无法管理属性文件,因为我们必须使用密钥引用。不是像“网络错误”这样的词 是否有适当的方法在没有if条件的情况下执行此操作 请回复我您可以使用HashMap,键作为关键字,值作为特定消息。嘿,您不需要任何属性文件。您只能使用枚举

我需要读一条小溪。此流正在转换为带有缓冲读取器的字符串。在阅读此流时,对于一些特定的关键字,我需要给出一个特定的消息。 如果我在读取流时发现“网络错误”,我需要给出“连接中有错误”

但我的问题是,如果有1000个特定的关键字,那么我必须写出1000个“如果”条件

我认为我们无法管理属性文件,因为我们必须使用密钥引用。不是像“网络错误”这样的词

是否有适当的方法在没有if条件的情况下执行此操作


请回复我

您可以使用
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响应。非常感谢您的回答