首页 > 解决方案 > 编辑字符串数组并将其转换为二维字符数组

问题描述

我从格式化的字符串数组开始useful.useless。我需要修剪.useless零件,然后将useful零件放入二维char数组中。

我看到一种方法涉及创建仅包含该useful部分的第二个字符串数组,然后将其转换为 2D 字符数组,但可能有一种更有效的方法。

但是,我不知道如何将字符串数组转换为二维字符数组

public static void main (String[]args){
    
    // this here is just to create an array so the example runs
    String in = "useful1.useless1,useful2.useless2,useful3.useless3,";
    String[] strArray = null; 
    strArray = in.split(",");
    
    /*the array of strings is thus
    [useful1.useless1, useful2.useless2, useful3.useless3]
    */
    
    char [][] charArray = new char [strArray.length][];
    
    /* trim from the . so only useful part remains
    then put in 2d char array, which should look like
    
    [u,s,e,f,u,l,1]
    [u,s,e,f,u,l,2]
    [u,s,e,f,u,l,3]
    
    the array will be a ragged array
    */

}

标签: javaarrays

解决方案


您需要在每个索引处填充相应索引处charArray所需子字符串的字符数组。strArray您可以如下所示进行:

for (int i = 0; i < strArray.length; i++)
    charArray[i] = strArray[i].substring(0, strArray[i].indexOf('.')).toCharArray();

演示:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        // this here is just to create an array so the example runs
        String in = "useful1.useless1,useful2.useless2,useful3.useless3,";
        String[] strArray = in.split(",");

        /*
         * the array of strings is thus [useful1.useless1, useful2.useless2,
         * useful3.useless3]
         */

        char[][] charArray = new char[strArray.length][];
        for (int i = 0; i < strArray.length; i++)
            charArray[i] = strArray[i].substring(0, strArray[i].indexOf('.')).toCharArray();

        // Display
        for (char[] row : charArray)
            System.out.println(Arrays.toString(row));
    }
}

输出:

[u, s, e, f, u, l, 1]
[u, s, e, f, u, l, 2]
[u, s, e, f, u, l, 3]

推荐阅读