2015-12-10 3 views
1

У меня есть этот код и вы хотите вернуть null, если нет книги, название которой содержит wordInTitle, или если wordInTitle имеет значение null или "". Я мог бы сделать это для null и "", но не в том случае, если нет книги, в которой содержится wordInTitle. Может кто-нибудь мне помочь?Как вернуть значение null, если метод String .contains не подходит?

public String[] getBookTitlesContaining(String wordInTitle) 
{ 
    int nBooks = 0; 
    String[] bookTitle = new String[nBooks]; 

    for (Book booksTitles : inventory) 
    { 
     if(booksTitles.getTitle().toLowerCase().contains(wordInTitle.toLowerCase())) 
     { 
      nBooks++; 
     } 
    } 

    int titleB = 0; 
    bookTitle = new String[nBooks]; 

    for (Book booksTitles : inventory) 
    { 
     if(booksTitles.getTitle().toLowerCase().contains(wordInTitle.toLowerCase())) 
     { 
      bookTitle [titleB] = booksTitles.getTitle(); 
      titleB++; 
     } 
    } 

    if ((wordInTitle == null) || (wordInTitle == "")) 
    { 
     return null; 
    } 

    return bookTitle; 

Заранее спасибо

ответ

1

Изменить этот if включать случай не совпадающих книг:

if ((wordInTitle == null) || (wordInTitle == "") || (nBooks == 0)) 
{ 
    return null; 
} 
+0

работал отлично! Спасибо большое – Fodrigoal

1

После подсчета количества книг, которые имеют название, если счетчик равен 0, то вы можете возвратить нуль;

public String[] getBookTitlesContaining(String wordInTitle) 
{ 
    int nBooks = 0; 
    String[] bookTitle = new String[nBooks]; 

    for (Book booksTitles : inventory) 
    { 
     if(booksTitles.getTitle().toLowerCase().contains(wordInTitle.toLowerCase())) 
     { 
      nBooks++; 
     } 
    } 

    if (nBooks == 0) return null; 
+0

Это один получить «отсутствует оператор возврата» Ошибка @controlAltDel – Fodrigoal

Смежные вопросы