Класс Collator - хороший способ сделать это (см. Соответствующий javadoc ). Вот модульный тест, который показывает, как его использовать:
import static org.junit.Assert.assertEquals;
import java.text.Collator;
import java.util.Locale;
import org.junit.Test;
public class CollatorTest {
@Test public void liege() throws Exception {
Collator compareOperator = Collator.getInstance(Locale.FRENCH);
compareOperator.setStrength(Collator.PRIMARY);
assertEquals(0, compareOperator.compare("Liege", "Liege")); // no accent
assertEquals(0, compareOperator.compare("Liège", "Liege")); // with accent
assertEquals(0, compareOperator.compare("LIEGE", "Liege")); // case insensitive
assertEquals(0, compareOperator.compare("LIEGE", "Liège")); // case insensitive with accent
assertEquals(1, compareOperator.compare("Liege", "Bruxelles"));
assertEquals(-1, compareOperator.compare("Bruxelles", "Liege"));
}
}
РЕДАКТИРОВАТЬ :
жаль, что мой ответ не соответствует вашим потребностям; может быть, потому что я представил его как юнит-тест? Это нормально для тебя? Я считаю, что лучше, потому что он короткий и использует SDK (нет необходимости в замене строки)
Collator compareOperator = Collator.getInstance(Locale.FRENCH);
compareOperator.setStrength(Collator.PRIMARY);
if (compareOperator.compare("Liège", "Liege") == 0) {
// if we are here, then it's the "same" String
}
надеюсь, это поможет