第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

匹配相同的希伯來語單詞總是返回 False

匹配相同的希伯來語單詞總是返回 False

胡子哥哥 2022-06-04 17:35:10
我試圖將相同的希伯來語單詞相互匹配,但它總是調(diào)用 else 程序的一部分。這是我在代碼中實(shí)際嘗試的:通過傳遞希伯來語單詞調(diào)用方法(來自 string.xml)<string name="shevat" >???????</string>getCurrentMonthIndex("??????")下面的方法總是返回 falseprivate boolean getCurrentMonthIndex(String month) {    if (month.equals("??????")) {        Log.d("Result:", "equal");        return true;    } else {        Log.d("Result:", "not equal");        return false;    }}如果我對值進(jìn)行硬編碼,那么它返回 trueprivate boolean getCurrentMonthIndex(String month) {    if ("??????".equals("??????")) {        Log.d("Result:", "equal");        return true;    } else {        Log.d("Result:", "not equal");        return false;    }}
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

您的字符串資源還有一個(gè)不可見的 Unicode 字符。


這是您在資源上的字符串:https ://www.fontspace.com/unicode/analyzer/?q=%D7%A9%D6%B0%D7%81%D7%91%D6%B8%D7%98%E2 %80%交流


這是您的代碼字符串:https ://www.fontspace.com/unicode/analyzer/?q=%D7%A9%D6%B0%D7%81%D7%91%D6%B8%D7%98


額外的字符是 U+202C POP DIRECTIONAL FORMATTING。


我在比較阿拉伯語字符串時(shí)遇到了類似的問題。在我的例子中,隱形字符是 U+200E LEFT-TO-RIGHT MARK。


在比較字符串之前,我從它們中刪除了這個(gè)字符。您還可以修剪 POP DIRECTIONAL FORMATTING。您也可以嘗試使用十六進(jìn)制編輯器從資源文件中刪除此字符。


如果鏈接不起作用,請對您的字符串進(jìn)行 unicode 分析:


U+05E9  HEBREW LETTER SHIN

U+05B0  HEBREW POINT SHEVA

U+05C1  HEBREW POINT SHIN DOT

U+05D1  HEBREW LETTER BET

U+05B8  HEBREW POINT QAMATS

U+05D8  HEBREW LETTER TET

U+202C  POP DIRECTIONAL FORMATTING //only on resource file

我對希伯來語不太了解,但我認(rèn)為您將來也會遇到另一個(gè)問題。在你的話中,第一個(gè)字母有兩個(gè)修飾語:U+05B0 HEBREW POINT SHEVA 和 0+05C1 HEBREW POINT SHIN DOT。盡管下面的兩個(gè)字母看起來完全一樣,但它們并不相等。修飾符以不同的順序編寫。


??? : U+05E9 + U+05B0 + U+05C1


??? : U+05E9 + U+05C1 + U+05B0


我在阿拉伯語上遇到了類似的問題。即使認(rèn)為下面的兩個(gè)詞看起來相同,它們也不等于彼此。U+064E ARABIC FATHA 和 U+0651 ARABIC SHADDA 以不同的順序書寫。


??? : U+0631 + U+064E + U+0651


??? : U+0631 + U+0651 + U+064E


對于阿拉伯語,在我的打字稿項(xiàng)目中,我編寫了一個(gè)實(shí)用方法來在比較字符串之前對其進(jìn)行規(guī)范化。規(guī)范化方法刪除所有 LEFT-TO-RIGHT MARK 字符并以標(biāo)準(zhǔn)方式重新排列修飾符字符。我認(rèn)為您可能需要為希伯來語做類似的事情。


@Elias N指出,Java 已經(jīng)有一種規(guī)范化字符串的方法。此方法不會刪除 POP DIRECTIONAL FORMATTING 或 LEFT-TO-RIGHT MARK。


String a = "???";  //U+05E9 + U+05B0 + U+05C1

String b = "???";  //U+05E9 + U+05C1 + U+05B0


String nomrA = java.text.Normalizer.normalize(a, java.text.Normalizer.Form.NFC);

String nomrB = java.text.Normalizer.normalize(b, java.text.Normalizer.Form.NFC);


assertFalse("Original strings are not equal.", a.equals(b));

assertTrue("Normalized strings are equal.", normA.equals(normB));


查看完整回答
反對 回復(fù) 2022-06-04
?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

IDE 默認(rèn)字符集是“CP1252”。所以它將無法讀取這個(gè)非英文字符。您的 IDE 是否支持 UTF-8 字符集,如果是,那么它應(yīng)該返回 true。就像,如果我將此代碼復(fù)制到 Eclipse(通過將日志更改為 sysout),那么它對我有用。



查看完整回答
反對 回復(fù) 2022-06-04
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號