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

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

比較兩個字符串時出現(xiàn)問題

比較兩個字符串時出現(xiàn)問題

侃侃爾雅 2022-06-04 15:47:07
我正在使用 Java 讀取 CSV 文件。在文件中,每一行的格式如下:operation, start, end.我需要為不同的輸入做不同的操作。但是當(dāng)我試圖比較兩個字符串時發(fā)生了一些奇怪的事情。我用equals來比較兩個字符串。其中一個操作是“添加”,但我從文檔中獲取的第一個元素總是給我錯誤的答案。我知道這是一個“添加”,我打印出來它看起來像一個“添加”,但是當(dāng)我使用 時operation.equals("add"),它是false. 對于所有其余的字符串,除了第一個之外,它都是正確的。CSV 文件的第一行有什么特別之處嗎?這是我的代碼:while ((line = br.readLine()) != null) {    String[] data = line.split(",");    String operation = data[0];    int start = Integer.parseInt(data[1]);    int end = Integer.parseInt(data[2]);    System.out.println(operation + " " + start + " " + end);    System.out.println(operation.equals("add"));例如,它打印出 add 1 3 false add 4 6 true 我真的不知道為什么。這兩個添加看起來完全一樣。
查看完整描述

3 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊

(至少)有 4 個原因說明為什么顯示/打印它們時“看起來”相同的兩個字符串可能會變成不相等:

  1. 如果您使用==而不是比較字符串equals(Object),那么您通常會得到錯誤的答案。(這不是這里的問題......因為您正在使用該equals方法。但是,這是一個常見的問題。)

  2. 一個字符串上出現(xiàn)意外的前導(dǎo)或尾隨空白字符。這些可以使用刪除trim()。

  3. 其他前導(dǎo)、尾隨或嵌入的控制字符或 Unicode“時髦”字符。例如雜散的 Unicode BOM(字節(jié)順序標(biāo)記)字符。

  4. 同形字。有許多示例使用相同或幾乎相同的字形在屏幕上呈現(xiàn)兩個或多個不同的 Unicode 代碼點。

情況 3 和 4 只能通過使用跟蹤打印或調(diào)試器檢查char兩個字符串中的長度和值來可靠地檢測到。

(CSV 文件的屏幕截圖無法幫助我們診斷此問題!CSV 文件的剪切和粘貼可能會有所幫助。)


查看完整回答
反對 回復(fù) 2022-06-04
?
慕姐8265434

TA貢獻(xiàn)1813條經(jīng)驗 獲得超2個贊

您應(yīng)該從第一個元素中刪除雙引號,然后使用 equals 方法進(jìn)行檢查。

嘗試這個:

String operation = operation.substring(1, to.length() - 1);
operation.equals("add")

希望對你有效。


查看完整回答
反對 回復(fù) 2022-06-04
?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊

看起來您在圖像中的線條看起來不錯。我想在這種情況下,您可能會設(shè)置錯誤的文檔編碼。例如,當(dāng) UTF 時,你不放它,那么開頭就有特殊的標(biāo)題。這可能是您錯誤閱讀第一個單詞的原因。



查看完整回答
反對 回復(fù) 2022-06-04
  • 3 回答
  • 0 關(guān)注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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