Библиотека сравнения строк - PullRequest
1 голос
/ 06 января 2010

Я ищу библиотеку Java 5, которая позволила бы мне сравнить текст, так как следующие строки возвращают true:

  • " foo bar " == "foo bar"
  • "foo\nbar" == "foo bar"
  • "foo\tbar" == "foo bar"
  • "féé bar" == "fee bar"
  • и т. Д. *

Есть предложения?

Ответы [ 5 ]

1 голос
/ 06 января 2010

В библиотеке ICU имеются функции для удаления диакритических знаков:

http://site.icu -project.org /

Остальное вы, вероятно, можете сделать с помощью одного или нескольких регулярных выражений.

1 голос
/ 06 января 2010

Он не имеет указанных вами функций напрямую, но вы также можете использовать функции CharMatcher, найденные в библиотеке google-guava: http://code.google.com/p/guava-libraries/

1 голос
/ 06 января 2010

Не думаю, что вы найдете библиотеку с этими конкретными правилами. Вам придется кодировать их самостоятельно. Для некоторых правил могут быть полезны регулярные выражения или даже каркасные методы String, но для последнего правила я думаю, что вам придется сохранять равенство Map для этих специальных символов. Затем вам придется перебирать каждый символ в строке, сравнивая их с помощью этой карты. И, поскольку вы уже просматриваете строку, возможно, вы могли бы применить все правила за одну итерацию, избегая регулярных выражений.

1 голос
/ 06 января 2010

Звучит так, будто вы хотите написать метод, чтобы "нормализовать" ваши строки в соответствии с вашими правилами, прежде чем сравнивать их. Используйте trim для первого правила, число replace или, возможно, StringUtils.replaceChars () , для остальных.

1 голос
/ 06 января 2010

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

http://java.sun.com/docs/books/tutorial/essential/regex/
http://www.regular -expressions.info / java.html

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