ETA在9:42下午3月21日:愚蠢的錯誤。我確保該對象的原始創建名稱爲.toUpperCase()。部分搜索沒有找到搜索詞,因爲它們沒有大寫。下面編輯的代碼。謝謝大家的幫助。在Java中使用正則表達式進行部分搜索
我想弄清楚如何使用正則表達式來找出是否有任何字符模式匹配對象中的東西。例如,如果與對象關聯的名稱是「StackOverflow」,我希望某人搜索「ck」並使if語句爲真。那麼,爲什麼我的if語句不能返回true?
ETA:i.getName()返回一個字符串。該程序正在循環對象的ArrayList以查找哪個對象具有與輸入相匹配的名稱。
System.out.println("What name or partial name would you like to filter?");
String name = input.nextLine();
int count = 0;
for (MyObject i: testObject) {
if (i.getName().matches(".*" + name.toUpperCase() + ".*")) {
count++;
}
}
爲什麼使用'matches'而不是['contains'](https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#contains(java.lang.CharSequence ))? – kennytm
是否有你迭代Object的原因?似乎你應該比較'字符串'。 – Matt
@matt對不起,不想發佈太多的代碼。該程序正在篩選對象的ArrayList,getName()獲取對象的String名稱。 – vandy