1

文字列変数を取得しました。文字列の例は次のとおりです。

abc
12345 cde123
hyz 
8755 3356

空白を分割して配列文字列を割り当てたいのですが、このようになります。そして、最初の 4 つの値だけを取得したいと思います。

stringArray[0] = abc;
stringArray[1] = 12345;
stringArray[2] = cde123;
stringArray[3] = hyz;

8755 3356 をこの配列文字列に割り当てる必要はありません。

ただし、abcand12345は空白ではなく改行で区切られています。だから私は次のような私の関数で改行になる空白を置き換えようとします:

Util.replaceStr(stringX, "\n", " ");

こぼれた文字列を配列文字列に割り当てるには、空白のインデックスを検出します。

int index= sMessage.indexOf(" ");

ループに乗せて

stringArray[i] = stringX.substring(0,index);
stringX=stringX.substring(index,stringX.length()-index);
index =stringX.indexOf(" ");

最初の 4 つの値を割り当てます。ただし、改行を空白に置き換えた後、空白が2つになり、最初の4つの配列は次のようになります

stringArray[0] = abc;
stringArray[1] = ;
stringArray[2] = 12345;
stringArray[3] = cde123;

空白値をスキップして配列文字列を割り当てるにはどうすればよいですか? NetBeans には分割機能はありません。私はJavaが得たことを知っています。=)

4

6 に答える 6

4

編集: この例は、Java 1.1 のターゲットで動作するはずです

String text = "String text2 = text.replaceAll(\"[^\\p{Alpha} ]\", \"\");";
StringBuffer sb = new StringBuffer();
for(int i=0;i<text.length();i++) {
    char ch = text.charAt(i);
    if (Character.isLetter(ch) || Character.isWhitespace(ch))
        sb.append(ch);
}
String text2 = sb.toString();
System.out.println(text2);

版画

String text  textreplaceAllpAlpha

空白で分割したい場合は、使用できます\s

String text = 
String[] words = text.split("\\s");

複数の空白があるように見えます ( の後にスペースがありhyzます) を使用し+て、1 つ以上を意味できます。

String text = "abc\n" +
        "12345 cde123\n" +
        "hyz \n" +
        "8755 3356\n";
String[] words = text.split("\\s+");
System.out.println(Arrays.toString(words));

版画

[abc, 12345, cde123, hyz, 8755, 3356]
于 2012-03-05T09:20:50.483 に答える
1

Javaには分割用のライブラリ関数があるので、その関数を分割に使用します。新しい行を空白に置き換えて、次の関数を使用するだけです。

String[] stringArray  = stringX.split("\\s");
于 2012-03-05T09:22:30.827 に答える
1

置換の使用

すべてのタイプのスペースを に変換した後:文字列が変更されなくなるまで、\nreplace \n\nwith を実行できます。\nそうすれば、二重スペースがないことを保証できます。

正規表現の使用

正規表現パターンの王様を使用して単語を見つけることもできます。何かのようなもの:

\S+

十分なはずです。空白以外のすべての文字を取得しています。文字列内に最初の 4 つの正規表現が見つかった場合は、必要なものが得られます。

于 2012-03-05T09:23:01.013 に答える
0

空白のグループを分割するだけです(正規表現で「+」を使用)。このように、空白で形成されたグループで終わることはありません。

String[] words = text.split("\\s+");
于 2012-03-05T09:25:58.420 に答える
0

次のコードを使用します。

String[] array = yourString.split("\\s");/* s is uncapitalized.*/

\s意味: [ \t\n\x0b\r\f] の略である空白文字

詳細については、 http://www.vogella.de/articles/JavaRegularExpressions/article.htmlを参照してください。

于 2012-03-05T09:27:35.283 に答える