0

私が持っているプロジェクトに手を貸す必要があり、ここで完全に立ち往生しています。

私は SringTokenizer で試します:

StringTokenizer st = new StringTokenizer(auxiliar2, "+");
while (st.hasMoreElements()) {
    try{
        Textos seleccion = new Textos();
        seleccion.setBook(st.nextElement().toString());
        seleccion.setSection(st.nextElement().toString());
        seleccion.setMemorization(st.nextElement().toString());
        texto.add(seleccion);
    }finally{           
    }
}

StringTokenizer で最初のループを正しくしますが、2 番目のループを実行すると、seleccion.setMemorization(st.nextElement().toString()); の次の要素が見つかりませんでした。そして、私はそれを使用したよりも分割がうまく機能することを読みました.

String[] tokens = auxiliar2.split("+");
for (int x = 0; x < tokens.length-1 ; x++ ){
    Textos seleccion = new Textos();
    seleccion.setBook(tokens[x].toString());
    seleccion.setSection(tokens[x+1].toString());
    seleccion.setMemorization(tokens[x+2].toString());
    texto.add(seleccion);
    x = x+2;
}

しかし、この方法でもうまくいきませんでした。ここで試してみましたが、なぜ文字列の文字しか表示されないのかわかりません。

助けてくれますか?ありがとう!!!!

4

1 に答える 1

4

splitメソッドは引数として正規表現を取り、正規表現+内で特別な意味を持ちます。

+バックスラッシュでエスケープし\てから、Java のバックスラッシュ自体をエスケープします。

String[] tokens = auxiliar2.split("\\+");
于 2013-11-12T16:53:15.593 に答える