当前位置: 首页 > 面试题库 >

Java。比较字符串时忽略重音

羊舌光赫
2023-03-14
问题内容

问题很简单。JAVA中是否有任何函数可以比较两个字符串并在忽略重音字符的情况下html" target="_blank">返回true?

String x = "Joao";
String y = "João";

回报相等。

谢谢


问题答案:

我认为您应该使用Collat​​or类。它允许您设置强度和区域设置,并将适当地比较字符。

从Java 1.6 API中:

您可以设置“整理器”的“强度”属性来确定在比较中被视为重要的差异水平。提供了四个优势:主要,次要,高等教育和同等优势。语言功能的优势确切分配取决于语言环境。例如,在捷克语中,“
e”和“ f”被认为是主要区别,而“ e”和“ě”是次要区别,“ e”和“ E”是三次区别,而“ e”和“ e”相同。

我认为这里的重点(人们正在尝试做到的)是,“
Joao”和“João”永远不应被视为相等,但是,如果要进行排序,则不希望基于ASCII值对它们进行比较因为那样您会遇到Joao,John,João之类的东西,这是不好的。使用collat​​or类肯定可以正确处理此问题。



 类似资料:
  • 我正在尝试比较这样的字符串: 因为我需要转义通配符,例如 问题: 有没有任何powershell函数可以忽略通配符/regex查找子字符串? 非常感谢。

  • 问题内容: 我正在尝试为我的应用程序编写一个过滤器函数,该函数将采用输入字符串并以某种方式过滤掉与给定输入不匹配的所有对象。最简单的方法是使用String的contains方法,即仅检查对象(对象中的String变量)是否包含在过滤器中指定的字符串,但这不会考虑重音。 所讨论的对象基本上是Person,而我要匹配的字符串是名称。因此,例如,如果有人搜索Joao,我希望Joáo会包含在结果集中。我已

  • 主要内容:equals() 方法,equalsIgnoreCase() 方法,equals()与==的比较,compareTo() 方法字符串比较是常见的操作,包括比较相等、比较大小、比较前缀和后缀串等。 在 Java 中,比较字符串的常用方法有 3 个:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法。下面详细介绍这 3 个方法的使用。 equals() 方法 equals() 方法将逐个地比较两个字符串的每个字符是否相同。如果两个字符串具有相

  • 问题内容: 假设我有两个xml字符串 如何编写一个比较这两个字符串并忽略元素顺序的测试? 我希望测试尽可能短,没有10行XML解析等的位置。我正在寻找一个简单的断言或类似内容。 我有这个(不起作用) 问题答案: 我原来的答案已经过时了。如果必须再次构建它,我将使用xmlunit 2和xmlunit- matchers。请注意,对于xml单元,不同的顺序始终是“相似”而不是相等。 如果有人仍然不想使

  • 我无法使用以下代码比较两个字符串: 我有一个名为“gender”的字符串,它将以“male”或“fomen”作为其值。 这不起作用,所以我尝试了以下几种: 又一次,没有奏效。请告诉我如何使用if语句比较字符串值。

  • 问题内容: 我写了一个从套接字读取一行的代码。 如果该行是“再见”,我希望它输出“ nice”。由于某种原因它不起作用,尽管我确实尝试无条件输出输入,并且确实说“再见” 这是我的代码 问题答案: 使用,而不是比较字符串。