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}}" ;;
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>
```
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:
Salida:
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.