Tengo una cuerda

str = "Abc=1,gdf=1,ghj=1,pqr=1"

Ahora, para incrementar el valor de pqr = 1 a pqr2 siempre que venga prq, incrementará el valor en 1. Así que decidí comenzar escupiendo esta cadena en cada "," para que una parte de la matriz de cadenas dividida contenga pqr = 1 y luego puedo realizar mi operación de incremento.

El código es el siguiente

String []  parts=str.split("=");

Esto da partes de la cadena que contiene pqr en el índice 3 pero no es necesario cada vez que pqr estará en el índice 3, así que quiero que sea genérico. Para eso estoy tratando de hacer lo siguiente:

if(Arrays. asList(parts). contains("pqr") {
    // Do my other split operation 
} 

Pero no puedo hacerlo genérico con esto. No recibo ningún error, pero el código no entra en la declaración if. Sugiera cómo hacerlo.

0
user8643408 15 nov. 2017 a las 09:16

2 respuestas

La mejor respuesta

En primer lugar, no es nada recomendable utilizar String para este propósito. Creo que lo que necesitas es un HashMap<String,Integer> en su lugar.

Además, puede simplemente iterar sobre su primera matriz y verificar cada String para el 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
Yash 15 nov. 2017 a las 06:26

¿Es esto lo que estás buscando? Estoy haciendo todo lo posible con el código proporcionado.

    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]);
                        }
                    }
                }
            }

        }

    }

}

Si hace algo diferente con cada uno, puede usar un interruptor.

La salida es:

do something else >> Abc
do something else >> gdf
do something else >> ghj
do something >> pqr

Cualquier cosa que quieras hacer para pqr, puedes hacer en el sur, haz algo.

0
SynchroDynamic 15 nov. 2017 a las 06:37