java - 编辑字符串数组并将其转换为二维字符数组
问题描述
我从格式化的字符串数组开始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
*/
}
解决方案
您需要在每个索引处填充相应索引处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]