我有一个字符串
str = "Abc=1,gdf=1,ghj=1,pqr=1"
现在我将 pqr=1 的值增加到 pqr2,每当 prq 到来时,它将值增加 1。 所以我决定从在每个","处吐出这个字符串开始,这样钉子字符串数组的一部分将包含pqr=1,然后我可以执行递增操作。
代码如下
String [] parts=str.split("=");
这给出了在索引 3 处包含 pqr 的字符串部分,但没有必要每次 pqr 都会在索引 3 处,所以我想让它成为通用的。 为此,我尝试执行以下操作:
if(Arrays. asList(parts). contains("pqr") {
// Do my other split operation
}
但我无法通过这个使它通用。 我没有收到任何错误,但代码没有进入 if 语句。 请建议如何做。
首先,根本不建议为此目的使用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
}
}
这是你要找的吗?我正在尽力使用提供的代码。
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做什么,你都可以在外面做一些事情。