java - 从 Hashmap 获取特定键

标签 java android

我用正则表达式":"分割字符串。分割字符串并使用 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/

相关文章:

java - 来自 Thread 的警报对话框 - Android

android - 库项目构建版本高于使用它的项目

java - 在mobilefirst中调用java适配器时如何解决此错误 "java.security.cert.CertificateException:"?

java - Android - 获取 JSONArray 问题

android - 在 Fragment 中以编程方式添加 TextView 并设置为 mainLayout

android - 简单字符串比较在 bash 脚本中不起作用

android - 将视频文件保存到 sd 卡文件夹

android - Google Play 应用内订阅项目 - 在 Developer Console 中切换 Activity 和非 Activity

java - 在 JAVA 中创建对象列表

java - 无法使用 Java Mail API 发送邮件 [使用 Gmail]