我有一个字符串
str = "Abc=1,gdf=1,ghj=1,pqr=1"
现在我将pqr = 1的值递增到pqr2,每当prq到来时它会将值递增1.所以我决定从每个""开始吐出这个字符串。所以spilited字符串数组的一部分将包含pqr = 1然后我可以执行我的递增操作。
代码如下
String [] parts=str.split("=");
这给出了在索引3处包含pqr的字符串部分,但是每次pqr都不在索引3时这是不必要的,所以我想让它成为通用的。为此,我试着做如下:
if(Arrays. asList(parts). contains("pqr") {
// Do my other split operation
}
但是我无法通过这种方式使它成为通用的。我没有收到任何错误,但代码不会进入if语句。请建议怎么做。
答案 0 :(得分:1)
首先,为此目的使用String
并不可取。我认为你需要的是HashMap<String,Integer>
而不是。
此外,您可以简单地遍历第一个数组并检查String
substring
的每个pqr
。
str = "Abc=1,gdf=1,ghj=1,pqr=1";
String[] arr = str.split(",");
for(String member: arr) {
if(member.contains("pqr")) {
//Do your operation here
}
}
答案 1 :(得分:0)
这是你在找什么?我正在尽力使用提供的代码。
public class Splitter {
public static void main(String[] args) {
String str = "Abc=1,gdf=1,ghj=1,pqr=1";
String[] strSplit = str.split(",");
int commaSplitCount = strSplit.length;
for (int s = 0; s < commaSplitCount; s++) {
String[] sSplit = strSplit[s].split("=");
int equalsSplitCount = sSplit.length;
if (equalsSplitCount > 0) {
for (int sParts = 0; sParts < equalsSplitCount; sParts++) {
if (sParts == 0) {
if (sSplit[sParts].contains("pqr")) {
System.out.println("do something >> " + sSplit[sParts]);
} else {
System.out.println("do something else >> " + sSplit[sParts]);
}
}
}
}
}
}
}
如果您对每种方法做了不同的事情,可以使用开关。
输出结果为:
do something else >> Abc
do something else >> gdf
do something else >> ghj
do something >> pqr
无论你想对pqr做什么,你都可以在sout做些什么。