0

プロパティ ファイルからこの {TA;TD;TE;TG;TI;TN;TNG;TP;TR;TS;TT} のようなパラメーターを読み取り、それを分割して {} と ; を削除する必要があります。そのために私は使用します:

String[] zzz = myString.split("[{;}]");

問題は、その文字列をデータベースに追加する必要があるメソッドに送信するときに発生し (方法は関係ありません)、空の最初の要素があることに気付きます。つまり、印刷すると次のように表示されます。

空白

TA

TD

...等

デバッグすると、最初の文字列から抽出された要素が""、"TA"、"TD"、"TE" などであることがわかります。

そして、この"" (文字列が送信されるメソッドは、要素間にコンマを自動的に挿入します) のため、データベース内の私の行は次のようになります:

、TA、TD、TE...など

どうすればそれを回避できますか? リミッターパラメーターで分割も試みましたが、うまくいきません。

前もって感謝します。

4

3 に答える 3

3

{}最初と最後からキャラクターを剥ぎ取ってみませんか?

myString.substring(1, myString.length() - 1).split(";");
于 2012-07-20T09:17:44.167 に答える
2

提供した否定パターンを使用し、 a を使用しMatcherて要素を取得できます。

public static void main(String[] args) {
    String data = "{TA;TD;TE;TG;TI;TN;TNG;TP;TR;TS;TT}";

    Matcher m = Pattern.compile("[{;]([^{;}]*)").matcher(data);

    while (m.find())
        System.out.println(m.group(1));
}

出力:

TA
TD
TE
TG
TI
TN
TNG
TP
TR
TS
TT
于 2012-07-20T09:38:15.610 に答える
1

コードに次の簡単な変更を加えることができます。

 myString.substring(1).split("[;}]");

これは、開き中括弧である最初の文字をスキップするだけです。開き中括弧で分割する必要がなくなったため、正規表現も少し単純になります。

于 2012-07-20T13:24:57.777 に答える