Как указать несколько шаблонов для разделителя в Java - PullRequest
0 голосов
/ 02 августа 2011

поэтому у меня есть метод, который копирует один файл в другой с использованием разделителя, который удаляет ссылки "null (U)", и входной файл выглядит как ...

C:\Documents and Settings\workspace\Extracted Items\image2.jpeg;image0;null(U) keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image3.jpeg;image1;null(U) keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image4.jpeg;image2;null(U) keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image5.jpeg;image3;null keyword1, keyword2, keyword3, keyword4,

... и выходной файл выглядит как ...

C:\Documents and Settings\workspace\Extracted Items\image2.jpeg;image0;keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image3.jpeg;image1;keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image4.jpeg;image2;keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image5.jpeg;image3;null keyword1, keyword2, keyword3, keyword4,

И для небольшого куска кода относительно моего разделителя, у меня есть ...

Scanner reader = new Scanner(inputFile);
reader.useDelimiter("null\\(U\\) ");

Однако мне было интересно, если бы я хотел указать несколько шаблонов, которые должен искать разделитель (т. Е. В дополнение к «null (U)», я хотел бы добавить «null»), как бы я это сделал? ? Я видел несколько примеров в Интернете, но я все еще не уверен, как разделитель способен различать различные шаблоны. Любой совет с благодарностью!

1 Ответ

3 голосов
/ 02 августа 2011

Вы можете использовать регулярное выражение и создать шаблон с чем-то вроде:

Pattern p = Pattern.compile("your regex here");

, а затем передайте этот шаблон методу useDelimiter(p).

регулярное выражение может быть что-то вроде (null\\s)|(null\\(U\\)\\s)

...