valores una tridimensionales multidimensionales matriz llenar letras ingresar con caracteres bidimensionales arreglos arreglo java string multidimensional-array

java - tridimensionales - Cómo imprimir una matriz bidimensional de cadenas como Cadena



llenar arreglo string java (5)

Sé cómo hacer el método toString para matrices unidimensionales de cadenas, pero ¿cómo imprimo una matriz bidimensional? Con 1D lo hago de esta manera:

public String toString() { StringBuffer result = new StringBuffer(); res = this.magnitude; String separator = ""; if (res.length > 0) { result.append(res[0]); for (int i=1; i<res.length; i++) { result.append(separator); result.append(res[i]); } } return result.toString();

¿Cómo puedo imprimir una matriz 2D?


Dos for bucles:

for (int i=1; i<res.length; i++) { for (int j=1; j<res[i].length; j++) { result.append(separator); result.append(res[i][j]); } }


La clase Arrays define un par de métodos útiles.

  • Arrays. toString - que no funciona para matrices anidadas
  • Arrays. deepToString - que hace exactamente lo que quieres

String[][] aastr = {{"hello", "world"},{"Goodbye", "planet"}}; System.out.println(Arrays.deepToString(aastr));

Da

[[hello, world], [Goodbye, planet]]


Usted simplemente itera dos veces sobre los elementos:

StringBuffer results = new StringBuffer(); String separator = "," float[][] values = new float[50][50]; // init values for (int i = 0; i < values.length; ++i) { result.append(''[''); for (int j = 0; j < values[i].length; ++j) if (j > 0) result.append(values[i][j]); else result.append(values[i][j]).append(separator); result.append('']''); }

IMPORTANTE: StringBuffer también es útil porque puede encadenar operaciones, por ejemplo: buffer.append(..).append(..).append(..) ya que devuelve una referencia a self! Use azúcar sintáctica cuando esté disponible.

IMPORTANTE2: ya que en este caso planea añadir muchas cosas al StringBuffer , es bueno estimar una capacidad para evitar asignar y reubicar la matriz muchas veces durante las adjuntas, puede hacerlo calculando el tamaño de la matriz multidimensional multiplicado por el carácter promedio Longitud del elemento que planea añadir.


public static void main(String[] args) { String array [] [] = { {"*","*", "*", "*", "*", "*"}, {"*"}, {"*"}, {"*"}, {"*","*", "*", "*", "*", "*"}, {"*"}, {"*"}, {"*"}, {"*"}, {"*"}}; for (int row=0; row<array.length;row++) { for (int column = 0; column < array[row].length; column++) { System.out.print(array[row][column]); } System.out.println(); } }


public static <T> String to2DString(T[][] x) { final String vSep = "/n"; final String hSep = ", "; final StringBuilder sb = new StringBuilder(); if(x != null) for(int i = 0; i < x.length; i++) { final T[] a = x[i]; if(i > 0) { sb.append(vSep); } if(a != null) for(int j = 0; j < a.length; j++) { final T b = a[j]; if(j > 0) { sb.append(hSep); } sb.append(b); } } return sb.toString(); }