2013-03-09 117 views
0

我知道這個問題已經被問到死,但我曾嘗試分別給予this question和所有的解決方案,我的if語句仍然不執行.. 我的代碼是這樣的:字符串比較方案不工作

String s = "Something*like*this*"; 
String[] sarray = s.split("\\*"); 

for(int i = 0; i < sarray.length; i++) { 
    if(sarray[i].equals("this")) { 
    //do something 
    } 
} 

任何建議將不勝感激。

+2

我沒有看到與此代碼的任何問題。嘗試在循環中打印數組的元素。同時檢查僞造的空白字符。 – 2013-03-09 01:52:35

+0

也許你的輸入字符串不是*你正在使用的樣本。考慮到有些字符是不可打印的(所以你通常不會在你的編輯器或控制檯中看到它們) – Raffaele 2013-03-09 01:56:53

+3

你發佈的代碼適合我。發佈您用於測試代碼的實際SSCCE。 – camickr 2013-03-09 01:57:46

回答

2

可正常工作確實

for (String token : "Something*like*this*".split("\\*")) { 
    if (token.equals("this")) { 
     System.out.println("Found this"); 
    } 
} 
+0

有趣的是,它不起作用,並通過解決您的解決方案,我已經得出結論,有什麼地方我得到我的「東西*像* this」的問題(我不創建它),即使輸出時看起來不錯。我認爲重組將會解決我的問題。謝謝 – Johnzo 2013-03-09 02:17:14

0

if執行在這裏。

在drJava交互窗格(或您最喜歡的IDE窗格)中測試這個單獨的部分(以檢查它們的每個工作)。

Welcome to DrJava. Working directory is C:\JavaProjects 
> String s = "Something*like*this"; 

> String[] sarray = s.split("\\*"); 

> sarray[0] 

"Something" 

> sarray[1] 

"like" 

> sarray[2] 

"this" 

> sarray[3] 

java.lang.ArrayIndexOutOfBoundsException 

> sarray.length 

> 3 

> sarray[1].equals("this") 

false 
>