0

重複の可能性:
Java StringTokenizer、空のnullトークン

この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)に4つのセミコロン( ";")がある場合、必要に応じてnull要素を持つ分割配列(splits2)の長さ= 5にします(splits2 [2] = null、splits2 [3] = nullなど)。

解決策を教えていただけますか?

4

1 に答える 1

1

1.「;」の間に「スペース」を使用します。同じ長さの配列を持つ。null ではない空のスペースがあります

例えば:

   String[] s = "1;2; ; ;" ; 

2. 配列はnullになる可能性のあるオブジェクトであり、内部に参照変数が含まれている場合、それらはnullになる可能性がありますが、プリミティブ型は null になることはできません。So i am using space.

/////////////////////編集済み////////////////

以下のスニペット、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);
于 2012-07-25T10:19:25.140 に答える