java - java中动态字符串的分割

标签 java

我有一个如下的字符串,我将参数(TransactionType、ServiceID、PaymentID、OrderNumber、Amount)拆分如下。

String response = "TransactionType=SALE&ServiceID=TV3&PaymentID=PYID2016061501417701&OrderNumber=2016061501417701&Amount=235.00"

String splitParams[] = res.split("&");
        String TransactionType = splitParams[0].substring(splitParams[0]
                .indexOf("=") + 1);
        String ServiceID = splitParams[1].substring(splitParams[1]
                .indexOf("=") + 1);
        String PaymentID = splitParams[2].substring(splitParams[2]
                .indexOf("=") + 1);
        String OrderNumber = splitParams[3].substring(splitParams[3]
                .indexOf("=") + 1);
        String amount = splitParams[4].substring(splitParams[4]
                .indexOf("=") + 1);

但问题是这些参数没有按顺序发送,有时有些参数没有发送。有没有办法使用java根据参数名称分割字符串中的参数?

最佳答案

你可以像这样使用 Guava 分割器:

Map<String, String> responseMap = Splitter.on("&")
        .omitEmptyStrings()
        .trimResults()
        .withKeyValueSeparator("=")
        .split(response);

然后你可以获得这样的值:

String TransactionType = responseMp.get("TransactionType ");

关于java - java中动态字符串的分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37833691/

相关文章:

java - 使用 jsf 和 tomcat 7.0 从 eclipse 部署动态 Web 应用程序时出现 NoClassDefFoundError

数组中的 Java 对象 - 碰撞检测

java - 计算时间线程android

java - 如何在java中同时使用多个Paint组件

java - 与 xlsx 包和 choose.files 冲突

java - 从 View 调用 Activity

java - Hibernate CascadeType 内部关联注释与外部关联注释

java - 如何用Java计算某人的年龄?

java - JScrollPane 在 swing 中滚动后不显示内容

java - 如果失败则在给定时间内执行任务