java - 比较忽略重音字符的字符串

标签 java string compare accent-insensitive

<分区>

我想知道是否有一种方法可以比较 2 个字符串并忽略使“noção”等于“nocao”的重音符号。 它会像 string1.methodCompareIgnoreAccent(string2);

最佳答案

您可以使用 java Collat​​ors 来比较忽略重音的测试,看一个简单的例子:

import java.text.Collator;

/**
 * @author Kennedy
 */
public class SimpleTest
{

  public static void main(String[] args)
  {
    String a = "nocao";
    String b = "noção";

    final Collator instance = Collator.getInstance();

    // This strategy mean it'll ignore the accents
    instance.setStrength(Collator.NO_DECOMPOSITION);

    // Will print 0 because its EQUAL
    System.out.println(instance.compare(a, b));
  }
}

文档:JavaDoc

我不会详细解释,因为我只使用了一点 Collat​​ors 并且我不是这方面的专家,但你可以谷歌一些关于它的文章。

关于java - 比较忽略重音字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833797/

相关文章:

arrays - GoLang 字符串为空

Python在括号内的空格或句子上分割字符串

javascript在第二次出现 "/"时替换文本

c++ - 检查大量文件对是否相同的快速方法

arrays - 比较 2 个数组并根据是否存在创建一个新数组,swift 5

MySQL - 比较两个字段并以百分比返回匹配

java - 将 java 对象保存到 PostgreSQL 问题

java - 如何访问在 main 方法中创建的对象

Java:在空间中将字符串剥离到数组的方法?

java - 更好的 : switch-case or if-else?