[英]Edit string array and convert it to 2D char array
我從一個格式化為useful.useless
的字符串數組開始。 我需要修剪掉.useless
部分,然后將useful
部分放入 2D char
數組中。
我看到了一種方法,涉及創建僅包含useful
部分的第二個字符串數組,然后將其轉換為二維字符數組,但可能有更有效的方法。
但是,我不知道如何將字符串數組轉換為二維字符數組
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]
流式傳輸字符串:
String
轉換為char[]
char[]
收集到一個char[][]
瞧:
char[][] usefulChars = Arrays.stream(strArray)
.map(s -> s.replaceAll("\\..*", ""))
.map(String::toCharArray)
.toArray(char[][]::new);
見現場演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.