簡體   English   中英

Java:與String問題相比,BufferedReader行

[英]Java: BufferedReader lines compared to String issues

我有一個程序正在讀取具有項目列表的文本文件,創建一個由其讀取的項目組成的ArrayList,然后將其與幾個選定的單詞進行比較。 例如,我的文本文件包含以下內容(無編號):

  1. 餐飲
  2. 電話
  3. 適合

然后讀取每個並將其添加到ArrayList中。 當我嘗試將String s =“ book”與ArrayList中的每個元素進行比較時,我發現s不等於任何值。 這是我所擁有的一種方法:

for (int i = 0; i < list.size(); i++)
{
if (s.equals(list.get(i))
    return true;
}

s.contains()也不起作用。 當我打印ArrayList時,每個String元素的末尾都有一個空白。 當s =“ book”時如何進行比較? 為什么會有額外的空格?

您可以使用String類的trim()方法刪除字符串開頭和結尾的空格。

空格可能在文件中,但您沒有注意到它。 與編輯器確認最后沒有空格。 為了更確定,請使用unix上的hd這樣的十六進制編輯器進行檢查。

另外,請檢查讀取的字符串是否不包含換行符。

使用trim()刪除前導和尾隨空格。

if (s.equals(list.get(i).trim())
    return true;
}

代替

if (s.equals(list.get(i))
  return true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM