Замена / добавление нескольких подстрок в определенных местах строки с использованием Java - PullRequest
0 голосов
/ 06 декабря 2011

Я не нашел решения конкретной проблемы, которая у меня есть.Я делаю разбор XML, в котором я хотел бы манипулировать словами внутри строки.

Учитывая, что у меня есть случай: 'word, word word word' - слова могут быть любой строкой, поскольку я не знаю, что онибыть заранее.

Я хотел бы иметь возможность манипулировать строкой, чтобы получить следующий результат: 'word., word word. word' - Итак, первое слово и третье слово, которое я хотел бы добавить '.' кконец их.

Какой подход был бы подходящим для этого?Будет ли регулярное выражение лучшим способом?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

Если вы хотите использовать регулярные выражения, то вам должно помочь следующее. Регулярное выражение разбито на 3 группы, на которые затем можно ссылаться в регулярном выражении замены в replaceAll.

System.out.println("hello, my name is"
    .replaceAll("(\\w+)(,\\s*\\w+\\s+\\w+)(\\s+\\w+)", "$1.$2.$3") );
0 голосов
/ 06 декабря 2011

Предполагая, что слова будут разделены с использованием одних и тех же символов, я думаю, что самым простым способом было бы использовать indexOf(" "), а затем использовать substring методы для добавления точки перед возвращаемым индексом. Помните, что вы также можете использовать lastIndexOf(" ") для добавления точки к третьему слову или даже указать начальную позицию indexOf, т.е.

String words = "word, word word word";
String newWords

int space1 = words.indexOf(" ");

newWords = words.substring(0, space1) & "." & words.substring(space1 + 1);

int lastSpace = newWords.lastIndexOf(" ");

newWords = newWords.subString(0, lastSpace) & "." & newWords.subString(lastSpace + 1);

(думаю, что-то в этом роде будет работать, но я не тестировал и написал это без IDE)

Конечно, я не очень хорошо знаком с регулярным выражением, и вы на самом деле не предоставили такого большого количества информации, поэтому регулярное выражение может быть одним из вариантов, но я думаю, что для этого потребуется знать длину (и) слова (s), по крайней мере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...