我用正则表达式":"
分割字符串。分割字符串并使用 HashMap()
中的 put()
方法映射字符串后,当我尝试获取特定的映射键时,它返回所有映射的值字符串中带有“:”。
这是我的代码:
public class MyClass {
private HashMap<String,String> map = null;
private String newString;
public MyClass(String newString) {
this.newString = newString;
map = new HashMap<String, String>();
}
public static MyClass ReadEntityRequest(String string) {
MyClass Request = new MyClass(string);
String[] arraystring = Request.string.split("\r\n", 2);
String[] arraystring1 = arraystring[1].replace("\r\n\r\n", "").split("\r\n");
for (int i = 0; i < arraystring1.length; i++){
String[] arraystring2 = arraystring1[i].split(":");
Request.map.put(arraystring2[0], arraystring[1]);
}
return Request;
}
public String getHeaderField(String string) {
String headerField = map.get(string);
if(headerField != null){
return headerField;
}
return null;
}
}
下面是调用获取特定键“Content-Length”的方法。
MyClass newRequest = MyClass.ReadEntityRequest(newStream);
int contLengthOffset = Integer.parseInt(newRequest.getHeaderField("Content-Length"));
我想要的结果是从字符串中仅获取关键字“Content-Length”。 如果需要,我们很乐意提供更多代码。有什么建议么?
最佳答案
您似乎为 map 中的所有键设置了相同的值:
Request.map.put(arraystring2[0], arraystring[1]);
尝试:
Request.map.put(arraystring2[0], arraystring2[1]);
关于java - 从 Hashmap 获取特定键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862809/