2017-03-22 8 views
-1

ユーザーが「車」や「スピーカー」などの検索を行ってもオークションが見つかった場合はどうすればいいですか?助けていただければ幸いです。ユーザー入力に一致する文字列

プライベートの静的な無効browseAuction(){

System.out.println("---Browse Auction---"); 

    String[] auctions = {"Car - Honda Civic VTI 1.8 Petrol", "Sony Bluetooth Speakers", "auctionObject" }; 

    java.util.List<String> list1 = java.util.Arrays.asList(auctions); 


    System.out.println("Search::"); 
    String searchWord = S.next(); 

    if (list1.contains(searchWord)) { 
     System.out.println("Auction Found : "); 
     java.util.Arrays.toString(auctions); 
    }else { 
     System.out.println("No Match Found :"); 
    } 
+0

または何とかすべてのオークションのリストを表示する、このwoul dははるかに良いです。 –

答えて

0

あなたはすべてのオークションを検索して確認する必要があります。このように結果を印刷することができます。 これを試してください。

Scanner S = new Scanner(System.in); 
    boolean found = false; 
    String[] auctions = {"Car - Honda Civic VTI 1.8 Petrol", "Sony Bluetooth Speakers", "auctionObject" }; 
    java.util.List<String> list1 = java.util.Arrays.asList(auctions); 

    System.out.println("---Browse Auction---"); 
    System.out.println("Search::"); 
    String searchWord = S.next().toLowerCase(); 

    //Searching all auctions for 'searchWord' key. 
    for (int i = 0; i < list1.size(); i++){ 
     String currentAuction = list1.get(i).toLowerCase(); 
     if (currentAuction.contains(searchWord)) { 
      System.out.println("Auction Found : " + list1.get(i)); 
      found = true; 
     } 
    } 

    //There is no match for 'searchWord' key. 
    if (!found) 
     System.out.println("No Match Found :"); 

あなたは '' 結果を検索する場合:あなたは 'どれも'

Search:: 
none 
No Match Found : 
を検索する場合、あなたが「車の

---Browse Auction--- 
Search:: 
car 
Auction Found : Car - Honda Civic VTI 1.8 Petrol 

を検索する場合

---Browse Auction--- 
Search:: 
a 
Auction Found : Car - Honda Civic VTI 1.8 Petrol 
Auction Found : Sony Bluetooth Speakers 
Auction Found : auctionObject 

+0

ありがとうございましたこの作品は華麗に –

+0

私のコメントの真の答えとしてマークを忘れないでください、ありがとうございます – ssorfonos

+0

私の場所で作られたauctionobjectを得る方法として混乱しているIm abitは、検索の一部。再び助けていただければ幸いです。 –

0

あなたが試みることができる:

if (list1.toLowerCase().contains(searchWord.toLowerCase())) { 
     System.out.println("Auction Found : "); 
     java.util.Arrays.toString(auctions); 
    }else { 
     System.out.println("No Match Found :"); 
    } 
0

をあなたが例えば、大文字小文字を区別しない比較を実行する方法を記述し、それを呼び出すことができます。

public boolean containsIgnoreCase(List<String> elements, String searchString){ 
    for(String element : elements){ 
     if(element.toLowerCase().contains(searchString.toLowerCase())){ 
      return true; 
     } 
    } 
    return false; 
} 

コード内:

if (containsIgnoreCase(list1,searchWord)) { 
    System.out.println("Auction Found : "); 
    java.util.Arrays.toString(auctions); 
}else { 
    System.out.println("No Match Found :"); 
} 

ここでのJava 8のstreamを使用する別の例です:

public boolean containsIgnoreCase(List<String> elements, String searchString){ 
    return elements.stream() 
      .filter(e -> e.toLowerCase().contains(searchString.toLowerCase())) 
      .findFirst() 
      .isPresent(); 
} 
関連する問題