我正在尝试使用.split()将字符串数组转换为另一个2D字符串数组,以便2D数组的每一行都填充其中一个拆分部分。我要拆分的数组应分为以下三部分:
数组的内容:
[0]= "25-Mar-18", [1]= "20-Dec-18",[2]= "1-Jan-15";
它在2D数组中应该是什么样子:
row [0] [0]= "25", [1]= "Mar", [2]= "18";
row [1] [0]= "20", [1]= "Dec", [2]= "18";
row [2] [0]= "1", [1]= "Jan", [2]= "15";
你明白了......这是我的代码。我的问题是:甚至可以将带有.split的数组存储到2D数组中吗?
代码:
String[] string = {"25-Mar-18", "20-Dec-18", "1-Jan-15"};
String[] [] parts;
void draw(){
for(int i=0; i<string.length;i++){
for(int j=0; j<3;j++){
parts[i] [j] = string[i].split("-");
}
}
printArray(parts);
}
错误:
Error: Type mismatch, "java.lang.String[]" does not match with "java.lang.String"
答案 0 :(得分:1)
你必须使用:
parts[i] = string[i].split("-");
而不是:
parts[i][j] = string[i].split("-");
为什么!
因为string[i].split("-")
返回一个数组而不是一个String,而部分是一个数组。
现在它给了我一个NullPointerException ...
因为您没有初始化数组String[] [] parts;
来解决您可以使用的问题:
parts = new String[string.length][];
答案 1 :(得分:1)
String.split(“ - ”)方法返回一个字符串数组。例如:如果“25-Nar-18”则{[“25”],[“Mar”],[“18”]}
所以你的代码应该更正为
for(int i=0; i<string.length;i++){
String[] temp = string[i].split("-");
for(int j=0; j<3;j++){
parts[i] [j] = temp[j];
}
}
答案 2 :(得分:0)
您正在获得nullPointerException
,因为您尚未初始化阵列。做
String[] string = {"25-Mar-18", "20-Dec-18", "1-Jan-15"};
String[][] parts = new String[3][3];
void draw() {
for(int i = 0; i < string.length; i++){
parts[i] = string[i].split("-");
}
}
答案 3 :(得分:0)
String[] string = {"25-Mar-18", "20-Dec-18", "1-Jan-15"};
String[] [] parts=new String[string.length][];
void setup(){
for(int i=0; i<string.length;i++){
parts[i]=string[i].split("-");
}
printArray(parts[0]);
}
由YCF_L&#39;
提供的问题