我有一个如下的字符串,我将参数(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/