java - 将字符串数组拆分为 int 数组

标签 java arrays string split

我想转换字符串数组,例如

str1[][] ={{"1,2,3,4","0","2,1"}};

像这样的int数组:

int arr[][]={{1,2,3,4},{0,0,0,0},{2,1,0,0}} 

我无法仅使用 split 方法,因为 tempString 的大小在每次迭代后都会发生变化。

我的代码:

int numOfelements = 3;

        String str1[][] = { { "1,2,3,4", "0", "2,1" } };
        int graph[][] = new int[numOfelements][numOfelements];
        String str[]= new String[numOfelements];


            for (int i = 0; i < numOfelements; ++i) {
                str = str1[i][0].split(",");
                for (int j = 0; j < numOfelements; ++j) {
                    try {
                        if (str.length < j)
                            graph[i][j] = Integer.parseInt(str[i]);
                        else
                            graph[i][j] = 0;
                    } catch (Exception e) {
                        JOptionPane.showMessageDialog(new JFrame(), "Error in the data!",
                                "Error", JOptionPane.ERROR_MESSAGE);
                        break;
                    }
                }
            }

最佳答案

您可以编写自定义方法来用零填充数组。如果谨慎使用,.split()仍然可以使用。

public static int[] fillArray(String s, int size){
    String[] tok = str.split(",");
    int[] newArr = new int[size];

    for(int x=0; x<Math.min(size, tok.length); x++)
        newArr[x] = Integer.parseInt(tok[x]);

    for(int x=Math.min(size, tok.length); x<Math.max(size, tok.length); x++)
        newArr[x] = 0;

    return newArr;
}

获取数组数据并用零填充它并将其放回到新数组中:

int[][] arr;
for(int x=0; x<str1[0].length; x++)
    arr[0][x] = fillArray(str1[0][x], 4);  //size of 4 can be changed to your needs

关于java - 将字符串数组拆分为 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36023090/

相关文章:

java - 用于将 svn diff 导出到 JAR 的 Eclipse 插件

java - 我不知道哪些内容需要我的信标应用程序

c - 在c中获取否定地址

javascript - 带星号的正则表达式电话号码

c# - 在图像上绘制对比字符串

java - 防止用户在 session 关闭后返回

MongoDB 选择查询的 Java 等效项

c++ - 查找数组中缺失的数字

java - 如何返回 JOptionPane 使用的对象数组的索引以在 switch 语句中使用?

java - 使用带小数的 string.split() - 不起作用