java split提供不同的数组长度

java split提供不同的数组长度,java,split,Java,Split,可能重复: 考虑到这个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(";"); Syste

可能重复:

考虑到这个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

我需要一些替代方法来提取具有相同长度的数组

如果搜索的字符串(exs2)中有四个分号(;),那么我希望在适当的情况下使用空元素(splits2[2]=null、splits2[3]=null等)使拆分数组(splits2)的长度=5

您能提供解决方案吗?

1.使用“;”之间的“空格”使数组具有相同的长度您将有不为空的空格

例如:

2。数组是一个对象,它可以是null,如果它包含引用变量,这些变量可以是null,但基元类型不能是null。
所以我使用空格。

///strong>

使用下面的代码段,它可以工作……

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);
String a=“1;2;”;
char[]chArr=a.toCharArray();
字符串温度=新字符串();
字符串[]finalArr=新字符串[a.length()];
for(int i=0;i
应该对您有所帮助。检查投票后的答案。@cosmincalistru thx感谢您的帮助,我对编程有点陌生。我不应该将搜索字符串修改为分号之间有空格。我猜@dadu的问题是他无法选择输入数据,因此尝试按原样分割数据应该是给出的解决方案。@dadu…检查我编辑的部分。。。。它包含你想要的代码。@KumarVivekMitra:谢谢你的想法,这是一个有趣的方法。似乎一个不太复杂的解决方案是使用split的第二个参数。您是否可以编辑您的答案,并将其作为其他备选解决方案包括在内:String[]splits2=s2.split(“;”,-1)?
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);