![](/img/trans.png)
[英]Character.IsDigit returns false instead of true on an integer Java
[英]Java Hashset returns false instead of true
這段代碼不斷返回false,我無法弄清楚原因。
List<String> angry = new ArrayList<String>();
while ((anger = angerSt.readLine()) != null) {
angry.add(anger);
}
angerSt.close();
String[] angrywords = angry.toArray(new String[0]);
String word = "mad"
Set<String> angryWordSet = new HashSet<String>(Arrays.asList(angrywords));
if(angryWordSet.contains(word))
{
System.out.print("Yes");
return true;
}
else return false;
angryWordSet包含瘋狂,憤怒,憤怒和發怒的字符串。 我把它打印出來以確保它在那里。 我不知為何會變得虛假。 有人可以幫忙嗎?
以下代碼完美運行:
public static void main(String s[])
{
List<String> angry = new ArrayList<String>();
angry.add("a");
angry.add("b");
angry.add("c");
angry.add("mad");
angry.add("b");
angry.add("b");
String word = "mad";
Set<String> angryWordSet = new HashSet<String>(angry);
if (angryWordSet.contains(word))
{
System.out.print("Yes");
}
else
{
System.out.print("No");
}
}
我假設當你做readline時,單詞會添加'\\ n'或'\\ r'字符,這就是為什么它與“word”varibale不匹配。 請驗證,我沒有測試它:)
我認為,你必須檢查每個angryWordSet
元素是否存在前導和尾隨空格。
for (String s : angryWordSet) {
if (s.trim().equals(word)) return true;
}
return false;
關於錯誤的嘗試給出答案。 我會留下前一個答案的一部分,希望它對某人有幫助。
Object[] toArray()
以適當的順序(從第一個元素到最后一個元素)返回一個包含此列表中所有元素的數組。 返回的數組將是“安全的”,因為此列表不會保留對它的引用。 (換句話說,此方法必須分配一個新數組)。 因此調用者可以自由修改返回的數組。
<T> T[] toArray(T[] a)
以適當的順序(從第一個元素到最后一個元素)返回一個包含該列表中所有元素的數組; 返回數組的運行時類型是指定數組的運行時類型。 如果列表適合指定的數組,則返回其中。 否則,將使用指定數組的運行時類型和此列表的大小分配新數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.