Java 比较字符串时忽略希伯来语元音
晚上好,我希望你能帮我解决这个问题,因为我正在努力寻找解决方案 我有一个单词提供者,比如说,他给我发元音的希伯来语单词- 元音-בִַּת不元音-בית 元音的-不元音的-不元音的 与我的提供者不同,我的用户通常不能输入希伯来语元音(我也不希望他这样做)。用户故事是指在提供的单词中寻找单词的用户。问题是元音单词和非元音单词之间的比较。由于每个都由内存中不同的字节数组表示,因此equals方法返回false 我试着研究UTF-8是如何处理希伯来语元音的,它似乎只是普通字符 我确实希望将元音呈现给用户,因此我希望保持字符串在内存中的原样,但在比较时,我希望忽略它们。有什么简单的方法可以解决这个问题吗?您可以使用。我不能告诉你它到底是如何工作的,因为它对我来说是新的,但这似乎起到了作用:Java 比较字符串时忽略希伯来语元音,java,encoding,hebrew,Java,Encoding,Hebrew,晚上好,我希望你能帮我解决这个问题,因为我正在努力寻找解决方案 我有一个单词提供者,比如说,他给我发元音的希伯来语单词- 元音-בִַּת不元音-בית 元音的-不元音的-不元音的 与我的提供者不同,我的用户通常不能输入希伯来语元音(我也不希望他这样做)。用户故事是指在提供的单词中寻找单词的用户。问题是元音单词和非元音单词之间的比较。由于每个都由内存中不同的字节数组表示,因此equals方法返回false 我试着研究UTF-8是如何处理希伯来语元音的,它似乎只是普通字符 我确实希望将元音呈现给用
public static void main( String[] args ) {
String withVowels = "בַּיִת";
String withoutVowels = "בית";
String withVowelsTwo = "הַבַּיְתָה";
String withoutVowelsTwo = "הביתה";
System.out.println( "These two strings are " + (withVowels.equals( withoutVowels ) ? "" : "not ") + "equal" );
System.out.println( "The second two strings are " + (withVowelsTwo.equals( withoutVowelsTwo ) ? "" : "not ") + "equal" );
Collator collator = Collator.getInstance( new Locale( "he" ) );
collator.setStrength( Collator.PRIMARY );
System.out.println( collator.equals( withVowels, withoutVowels ) );
System.out.println( collator.equals( withVowelsTwo, withoutVowelsTwo ) );
}
由此,我得到以下输出:
These two strings are not equal
The second two strings are not equal
true
true
恐怕没有。
元音是字符。甚至一些字母和点的组合也是字符。请参阅维基百科页面
只能将单词的搜索关键字存储为05dx-05ex范围内的字符。您可以为带有元音的单词添加另一个字段
当然,您应该期待以下内容:
- 根据nikkud的说法,你需要解释有不同意思的单词李>
- 你应该考虑到י和ו的“拼写错误”,这是很常见的李>