在拆分操作的字符串数组中搜索特定字符串



我有一个字符串

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做什么,你都可以在外面做一些事情。

最新更新