2017-10-09 68 views
0

我目前正在研究一種方法,它將輸出到列表中的所有主題代碼包含用戶輸入的字符串。例如,我的ArrayList有4本書,其中有兩個字段:name,subjectCode。目前,該方法的輸出返回// True,False,False,True等。我如何配置它,以便顯示所有True值的subjectCode,例如。 COMM100,COMM200當輸入s = COM時輸出打印布爾代替字符串

private static void findSubjectCodes(ArrayList<Subject2> list, String s) { 
    System.out.println("Subject codes found:"); 

    for (int i = 0; i < list.size(); i++) 
    System.out.println(list.get(i).subjectCode.contains(s) + "\n"); 

     // True, False, True, etc 

} 
+1

使用IF語句,如'contains'返回一個布爾值。 – Compass

+0

請閱讀如何創建[mcve],然後相應地編輯您的問題。同時,['contains()'](https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#contains(java.lang.CharSequence))確實會返回一個布爾值。 – domsson

回答

0

返回類型.contains(*)是布爾值,這就是爲什麼你得到布爾值作爲輸出。

它基本上檢查該屬性是否包含接收到的文本,因此list.get(i).subjectCode.contains(s)正在打印一個布爾值。

要打印,你需要做這樣的事情的主題代碼:

for (int i = 0; i < list.size(); i++){ 
     if(list.get(i).subjectCode.contains(s)) 
     { 
      System.out.println("Subject is found:" +list.get(i).subjectCode); 
     } 
     else{ 
      System.out.println("Subject not found."); 
     } 
    } 

下面是官方文檔:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

+0

感謝您的幫助和解釋。 –

3

將您的contains條件放入條件分支中。例如

for (int i = 0; i < list.size(); i++) { 
    String subjectCode = list.get(i); 
    if (subjectCode.contains(s) { 
      System.out.prinltn(subjectCode + "\n"); 
     } 
    } 
+0

謝謝你的幫助。 –

相關問題