【问题标题】:How can I convert a 2d Number array into a 2d String array?如何将二维数字数组转换为二维字符串数组?
【发布时间】:2021-01-28 20:06:11
【问题描述】:

我对 java 或编程真的很陌生,所以我有一个“基本”问题(我猜)。我有这段代码,它为我生成了一个数字数组。我想将其转换为字符串数组。有人可以修复我的代码吗?

public class HelloWorld{
    public static void main(String[] args) {
        Number[][] values = new Number[10][12];
        for (int i = 0; i < values.length; i++) {
            for (int j = 0; j < values[i].length; j++) {
                values[i][j] = Math.floor(Math.random() * 100000) / 100000;

                System.out.print(values[i][j] + " ; ");
            }
            System.out.println();
        }
    }
}

【问题讨论】:

  • 之后还需要Numbers的数组吗?如果没有,只需在生成数字后立即将其转换为字符串,并将values 声明为String[][]。顺便说一句,当double 绰绰有余时,为什么还要使用Number
  • 是的,之后我需要这些数字。还有双打/数字数组,谢谢你的提示

标签: java arrays type-conversion


【解决方案1】:

您可以简单地使用字符串数组而不是数字数组。设置元素时,使用String.valueOf(YOUR_NUMBER)

【讨论】:

  • 所以我写 String [][] values = new String[12][10];然后?我在哪里使用您的 String.valueOf?
  • 在这里只需添加:`values[i][j] = String.valueOf(Math.floor(Math.random() * 100000) / 100000);
【解决方案2】:

最明显的方式:

public static String[][] convert(Number[][] numbers) {
        String[][] result = new String[numbers.length][];
        for (int i = 0; i < numbers.length; i ++) {
            Number[] row = numbers[i];
            result[i] = new String[row.length];
            for(int j = 0; j < row.length; j ++) {
                result[i][j] = row[j] == null ? null : row[j].toString();
            }
        }
        return result;
    }

不太明显的方式:

public static String[][] convert(Number[][] numbers) {
        return Arrays.stream(numbers)
                .map(row -> Arrays.stream(row).map(n -> String.valueOf(n)).toArray(String[]::new))
                .toArray(String[][]::new);
    }

【讨论】:

  • 谢谢,但我如何将它添加到我的班级?只是作为第二种方法还是我必须改变一些东西?
  • 是的,将方法添加到您的类并像String [][] strValues = convert(values);一样调用它
  • 我必须重命名它吗?因为当我复制并粘贴它并将行更改为“String [][] strValues = convert(values);”时,我收到了一些错误消息。我真的是java新手,很抱歉那些愚蠢的问题。
  • 不需要重命名,将方法放在你的类中并确保它在从 main() 调用时是静态的就足够了。
  • 好的,谢谢,但最后一个问题:这两种方法是如何联系起来的?
猜你喜欢
  • 2019-01-23
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多