es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo dividir una cadena de una matriz multidimensional.

Tengo una cadena aquí:
String str1 = "{{1,2,3},{4,5,6},{7,8,9}}"

y el resultado que espero es así:

{1,2,3}
{4,5,6}
{7,8,9}

¿Qué método uso en el lenguaje Java?
Gracias.


Intenté con el método split y luego puse cada matriz en una variable de matriz de lista llamada “datos”.
resultado:


<p>1,2,3
,
4,5,6
,
7,8,9
<code>
y trato de eliminar la matriz de datos que está vacía y que solo tiene un valor de cadena ""," resultado:");
</code></p>

<p>1,2,3
,
4,5,6
,
7,8,9
Excepción en el hilo "principal" java.lang.StringIndexOutOfBoundsException: El índice de cadena está fuera de rango: 0
en java.base / java.lang.StringLatin1.charAt (StringLatin1.java:48)
en java.base / java.lang.String.charAt (String.java:712)
en io.jhdf.examples.test2.lambda $ 0 (test2.java:26) <br />
en java.base / java.util.ArrayList.removeIf (ArrayList.java:1672)
en java.base / java.util.ArrayList.removeIf (ArrayList.java:1660)
en io.jhdf.examples.test2.main (test2.java:26)
```</p>

y este es mi código:
</code></pre>

ArrayList <String> datos = new ArrayList <String> ();
</p>

<pre><code> String str1 = "{{1,2,3},{4,5,6},{7,8,9}}&quot ;;
String [] arrOfStr1 = str1.split (" [{}] ");

// System.out.println (arrOfStr [2] .length ());

for (String a1: arrOfStr1) {
datos.add (a1);
System.out.println (a1);
}
datos.removeIf ( n - > (n.charAt (0)) == ',');
</code></pre>

```

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr el resultado deseado, podemos utilizar una combinación del método split() junto con un bucle for y el método replace(). El método split() divide una cadena en un arreglo basado en un delimitador especificado. Podemos dividir la cadena dada por ‘},{‘ para obtener cada subarreglo. Luego, podemos utilizar un bucle for junto con el método replaceAll() para eliminar los caracteres innecesarios de cada subarreglo, y finalmente imprimir cada subarreglo en su propia línea.

    Aquí está el fragmento de código:

    String str1 = "{{1,2,3},{4,5,6},{7,8,9}}";
    String[] subArrays = str1.substring(2, str1.length()-2).split("},\\{");
    
    for(String subArray: subArrays) {
        subArray = subArray.replaceAll("[{}]", ""); //eliminamos las llaves
        subArray = subArray.replaceAll(",", " "); //reemplazamos la coma con un espacio
        System.out.println(subArray);
    }
    

    Salida:

    1 2 3
    4 5 6
    7 8 9
    

    Nota: También podemos utilizar regex para eliminar las llaves y las comas de los subarreglos, pero para que sea más simple y comprensible para los principiantes, he utilizado el método replaceAll() con caracteres específicos que deben ser reemplazados.

Comments are closed.