首页 > 解决方案 > 使用 String.split() 循环遍历二维数组

问题描述

我有一个简单的问题,但我是来自 PHP 的 Java 新手。我需要将分隔的文本文件拆分为一个数组。我把它分解成一系列行,每一行看起来像这样:

{
    {Bob | Smithers | Likes Cats | Doesnt Like Dogs},
    {Jane | Haversham | Likes Bats | Doesnt Like People}
}

我需要把它变成一个二维数组。

在 PHP 中,这是小菜一碟。您只需使用 explode(); 我尝试在一维数组上使用 String.split,它也没有那么糟糕。问题是,我还没有学会如何对 Java 友好。所以我不知道如何循环遍历数组并将其变成 2d。这就是我所拥有的:

for (i = 0; i < array.length; i++) {
    String[i][] 2dArray = array[i].split("|", 4);
}

PHP将是

for ($i = 0; $i < count($array); $i++) {
    $array[i][] = explode(",", $array[i]);
}

标签: javaarraysloops

解决方案


您可以像这样循环数组:

    // Initialize array
    String[] array = {
            "Bob | Smithers | Likes Cats | Doesnt Like Dogs",
            "Jane | Haversham | Likes Bats | Doesnt Like People"
    };

    // Convert 1d to 2d array
    String[][] array2d = new String[2][4];
    for(int i=0;i<array.length;i++) {
        String[] temp = array[i].split(" \\| ");

        for(int j=0;j<temp.length;j++) {
            array2d[i][j] = temp[j];
        }
    }

    // Print the array
    for(int i=0;i<array2d.length;i++) {
        System.out.println(Arrays.toString(array2d[i]));
    }

笔记:我曾经\\|分割管道字符。


推荐阅读