5

1 つの空白を区切り文字として使用できない文字列があります。ただし、複数の空白が連続して発生する場合は、区切り文字として機能する必要があります。例えば

"Line 1     Component Name             Revision        Quantity   Unit"

この例では、分割後に 5 つの異なる要素が必要です。文字列に組み込みの分割関数を使用して実装するにはどうすればよいですか。(空白の単一出現は区切り文字として機能しないことに注意してください)

4

4 に答える 4

9

2 つのスペースに分割し、結果に含まれる余分な部分を削除します (スペースの数が奇数の場合に発生します)。

List<string> splitStrings = myString.Split(new[]{"  "}, StringSplitOptions.RemoveEmptyEntries)
    .Select(s => s.Trim())
    .ToList();
于 2013-08-14T09:48:17.510 に答える
3

うーん、これがすべてのケースをカバーするかどうかはわかりません:

var regex = new Regex("  +");
var result = regex.Split("Line 1     Component Name             Revision        Quantity   Unit");

結果:

Line 1
Component Name
Revision
Quantity
Unit
于 2013-08-14T09:55:14.010 に答える
0

まあ、いつでも使用できます:

String newStr = str.Split("<White space><White space>");
于 2013-08-14T09:48:33.603 に答える
0

ここであなたは...

String fields = "He rl  lo vjdvd    fcsd";

Pattern pattern = Pattern.compile("\\s\\s\\s*" );

String[] split = pattern.split(fields);
for (String string : split) {
    //Use values here
}
于 2013-08-14T10:07:35.340 に答える