首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >2维数组到字符串代码java

2维数组到字符串代码java
EN

Stack Overflow用户
提问于 2013-11-18 04:20:15
回答 3查看 13.3K关注 0票数 0

对于我必须编写的程序,我需要将一个由一位数组成的二维数组转换为一个由空格分隔的数字字符串。系统为我提供了一个测试代码,当我运行它时,我的代码未能通过两个arrayToString测试。我找不到我的逻辑错误在哪里。谁来帮帮忙!

public static String arrayToString(int[][] a) {

    String aString;     
    aString = "";
    int column;
    int row;

    for (row = 0; row < a.length; row++) {
        for (column = 0; column < a[0].length; column++ ) {
        aString = aString + " " + a[row][column];
        }
    aString = aString + "\n";
    }

    return aString;
}
EN

回答 3

Stack Overflow用户

发布于 2013-11-18 04:44:40

int[][] a = new int[][]{{1,2,3},{4,5,6},{7,8,9}};

public static String arrayToString(int[][] a) {

    String aString;     
    aString = "";
    int column;
    int row;

    for (row = 0; row < a.length; row++) {
        for (column = 0; column < a[0].length; column++ ) {
        aString = aString + " " + a[row][column];
        }
    aString = aString + "\n";
    }

    return aString;
}

输出:

1 2 3
4 5 6
7 8 9

如果您跳过此行aString = aString + "\n";,您的输出将如下所示

1 2 3 4 5 6 7 8 9
票数 0
EN

Stack Overflow用户

发布于 2018-04-13 16:41:16

@dawood ibn-kareem很好地解释了测试失败的可能原因。

有了Java 8 Stream,做你想做的事情就很容易了!

输入:[1,2,3,3,4,5,5,6,7]

public static String arrayToString(int[][] a) {
    return Arrays.stream(a)
            .map(s -> Arrays.stream(s)
                            .mapToObj(String::valueOf)
                            .collect(Collectors.joining(" "))
            )
            .collect(Collectors.joining("\n"));
}

输出:

1 2 3
3 4 5
5 6 7

其他方法,用于分隔2D数组的每一行,而不使用回车符

public static String arrayToString(int[][] a) {
    return Arrays.stream(a)
            .flatMapToInt(Arrays::stream)
            .mapToObj(String::valueOf)
            .collect(Collectors.joining(" "));
}

输出

1 2 3 3 4 5 5 6 7

玩得开心!

票数 0
EN

Stack Overflow用户

发布于 2013-11-18 04:30:00

你的代码基本上没问题,只是你在每一行的开头加了一个前导空格。要在返回前清理它们,请添加以下行:

aString = aString.replaceAll("(?m)^ ", "");

这将使用regex删除(通过用空格替换)行开头的所有空格。正则表达式标志(?m)使^匹配输入的每一行的开头(通常^只匹配输入的开头)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20035669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档