Разделение строки с помощью '|' - PullRequest
1 голос
/ 08 августа 2011

У меня есть строка

|      859706 | Conficker infected host at 192.168.155.60    |        5744 |       7089 |        5 |                 4 | 1309714576 |
                1 | completed           | 

Мне нужно разделить с помощью |который является ничем иным, как символом трубы (|), когда я даю следующее разбиение, я получаю размер массива как 0

columns=parts[i].split('|');

, где части и столбцы являются строковыми массивами

Ответы [ 4 ]

4 голосов
/ 08 августа 2011

| является специальным символом регулярного выражения - вы можете избежать его с помощью обратной косой черты, поэтому в java вы должны написать

columns=parts[i].split("\\|"); //first backslash escapes the second for java

РЕДАКТИРОВАТЬ: и если вам нужно поддерживать трейлингпустые столбцы, не забудьте использовать

columns=parts[i].split("\\|", -1);
1 голос
/ 08 августа 2011

У меня была похожая проблема, и она работала с escape-символом впереди т.е.

parts[i].split("\\|")
0 голосов
/ 08 августа 2011

можно попробовать columns=parts[i].split("|");

0 голосов
/ 08 августа 2011

В методе разделения используйте «[|]» вместо «|».

...