考虑这个java片段:
public class Test {
public static void main(String[] args) {
String s1 = "1;2;3;4;5";
String s2 = "1;2;;;";
String[] splits1 = s1.split(";");
String[] splits2 = s2.split(";");
System.out.println(splits1.length);
System.out.println(splits2.length);
}
}
输出:
5
2
我需要一些替代方法来提取长度相同的数组。
如果搜索到的字符串中存在四个分号(“;”)(ex s2),那么我希望在适当的情况下使用null元素的长度= 5的分裂数组(splits2)(splits2 [2] = null,splits2 [3] = null等)。
您能提供解决方案吗?
答案 0 :(得分:1)
1。在“;”之间使用“空格”拥有相同长度的数组。 您将拥有空格不为空
例如:
String[] s = "1;2; ; ;" ;
<强> 2。数组是一个对象,可以是 null ,如果它包含引用变量,那么它们可以是 null ,< strong>但原始类型不能为空。 So i am using space.
<强> ///////////////////// EDITED ///////////////// 强> < / p>
使用以下代码段,ITS WORKING ....
String a = "1;2;;;;";
char[] chArr = a.toCharArray();
String temp = new String();
String[] finalArr = new String[a.length()];
for (int i = 0; i < chArr.length; i++) {
try {
temp = chArr[i] + "";
Integer.parseInt(temp);
finalArr[i] = temp;
} catch (NumberFormatException ex) {
finalArr[i] = null;
}
}
for (String s : finalArr){
System.out.println(s);
}
System.out.println(finalArr.length);