convert two-dimensional array to string

前端 未结 4 1541
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-09 09:38

I\'m trying to convert a String[][] to a string for display in a GUI. Here\'s my code:

String[][] tableBornes = SearchPropertiesPlugin.FillBorne         


        
相关标签:
4条回答
  • 2020-12-09 10:02

    If you want to create one-line representation of array you can use Arrays.deepToString.


    In case you want to create multi-line representation you will probably need to iterate over all rows and append result of Array.toString(array[row]) like

    String[][] array = { { "a", "b" }, { "c" } };
    
    String lineSeparator = System.lineSeparator();
    StringBuilder sb = new StringBuilder();
    
    for (String[] row : array) {
        sb.append(Arrays.toString(row))
          .append(lineSeparator);
    }
    
    String result = sb.toString();
    

    Since Java 8 you can even use StringJoiner with will automatically add delimiter for you:

    StringJoiner sj = new StringJoiner(System.lineSeparator());
    for (String[] row : array) {
        sj.add(Arrays.toString(row));
    }
    String result = sj.toString();
    

    or using streams

    String result = Arrays
            .stream(array)
            .map(Arrays::toString) 
            .collect(Collectors.joining(System.lineSeparator()));
    
    0 讨论(0)
  • 2020-12-09 10:04

    How about this:

    StringBuilder sb = new StringBuilder();
    for(String[] s1 : tableBornes){
        for(String s2 : s1){
            sb.append(s2);
        }
    }
    String table = sb.toString();
    

    If you want to insert spaces or some other character between the items just add another append call within the inner loop.

    0 讨论(0)
  • 2020-12-09 10:16

    try one line version

    Arrays.deepToString(tableBornes);
    

    or multiline version

    StringBuilder sb = new StringBuilder();
    for(String[] s1 : tableBornes){
        sb.append(Arrays.toString(s2)).append('\n');
    }
    String s = sb.toString();
    
    0 讨论(0)
  • 2020-12-09 10:24

    Try Arrays.toString(Object[] a)

    for(String[] a : tableBornes) 
          System.out.println(Arrays.toString(a));
    

    The above code will print every array in two dimensional array tableBornes in newline.

    0 讨论(0)
提交回复
热议问题