【问题标题】:2D String Array into 2D Int Array二维字符串数组转换为二维整数数组
【发布时间】:2018-04-09 19:16:00
【问题描述】:

我想将二维字符串数组转换为整数二维数组。怎么做。我尝试了一些东西,但我现在无法集中注意力,我想今天完成它:D 在此先感谢。 所以...这里是数组的所有值:

parts[] []: 

[0] "25"
[1] "3"
[2] "18"

[0] "20"
[1] "12"
[2] "18"

[0] "1"
[1] "1"
[2] "15"

//string.length = 3;

String[] [] parts = new String[string.length][];
int[] [] stringToInt = new int[string.length][];

for(int a=0; a<string.length;a++){
    for(int b=0; b<3;b++){
      stringToInt[a] = Integer.parseInt(parts[a] [b]);    <---Error
    }
}

【问题讨论】:

  • 你认为stringToInt[a] = Integer.parseInt(parts[a] [b]) 是做什么的?你确定你没有错过[b] 的某个地方吗?还有你到底得到了什么错误?
  • 请尝试更具体。你遇到了什么错误?你能发一个minimal reproducible example吗?此外,这似乎不是处理代码,所以我删除了processing 标签。
  • “我现在无法集中注意力”似乎不是将这个问题外包给我们的正确理由,从而占用了我们回答认真尝试但无法解决的问题的时间'想不出问题的答案。
  • 我是 Stack Overflow 的新手,所以我在将我的代码的某些段落标记为代码时遇到了问题。此外,这是处理代码。是什么让你认为它不是?如果您的意思是代码的第一行确实不是代码。但是因为正如我所说的将这些行标记为非代码时遇到问题,我将其标记为代码。如果我没记错的话,它被自动标记为代码,我无法更改它,因为它被识别为代码。关于“我无法集中注意力”:我以为我有问题可以问?这是一个合理的问题,还是不是?请帮助我理解。
  • 对不起,我一次回答了所有问题,但我没有看到不止一个人问了一个问题

标签: java arrays string integer


【解决方案1】:

您在初始化字符串数组,然后定义二维 int 数组时遇到了一些问题。这可能是您的本意:

String parts[][] = { { "25", "3", "18" }, { "20", "12", "18" }, { "1", "1", "15" } };

int[][] stringToInt = new int[parts.length][parts[0].length];

for (int a = 0; a < parts.length; a++) {
    for (int b = 0; b < parts[0].length; b++) {
        stringToInt[a][b] = Integer.parseInt(parts[a][b]);
    }
}

【讨论】:

  • 谢谢,首先我想说顶部的“代码”并不是我不小心将其定义为代码的代码的一部分。它是部分 [ ] [ ] 的输出。我只是想展示它的样子。抱歉造成误解 :D 是的,非常感谢。我忘了初始化 Arrayrows...
【解决方案2】:
    public static void main(String[] args) {
    int cols = 3;
    int rows = 3;
    String [][] parts = new String[cols][rows];

    //init the 2d array
    parts[0][0] = "25";
    parts[0][1] = "3";
    parts[0][2] = "18";

    parts[1][0] = "20";
    parts[1][1] = "12";
    parts[1][2] = "18";

    parts[2][0] = "1";
    parts[2][1] = "1";
    parts[2][2] = "15";

    //the array you want
    int [][] intArray = new int [cols][rows];

    for(int c = 0; c < cols; c++){

        for(int r = 0; r < rows; r++){
            intArray[c][r] = Integer.parseInt(parts[c][r]);
        }

    }


}

我认为您的错误可能是因为您提供的是 stringToInt[a]= 而不是 stringToInt[a][b]=

【讨论】:

  • 感谢您提交评论。是的你是对的。我也用 stringToInt[a][b]= 尝试过,但它不起作用的原因是我忘记初始化二维数组的行....
猜你喜欢
  • 2019-01-23
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多