2017-05-25 46 views
-3

我想知道如何用命令字符串數組搜索結果:搜索訂單

例:

String[] chestOrder = new String[]{"silver", "silver", "silver", "gold", "silver", "silver", "gold", "silver", "silver", 

如果我搜索: 銀色銀色銀色黃金,我怎樣才能得到下一個字符串?所以在這裏,它是銀色的。

謝謝。

+4

你嘗試過這麼遠嗎? –

回答

0

我的理解是,如果你連續銀3次,然後黃金,你想要得到下一個字符串。

因此,在這段代碼中,它檢查一行中是否有銀色的銀色黃金,並獲取下一個字符串給變量並打印出來。

String[] chestOrder = new String[]{"silver", "silver", "silver", "gold", "silver", "silver", "gold", "silver", "silver"}; 
    String next = null; 

    for(int i = 0 ; i < chestOrder.length ; i++){ 
     if(i <= (chestOrder.length - 3)){ 
      if(chestOrder[i].equals("silver") && chestOrder[i+1].equals("silver") && chestOrder[i+2].equals("silver") && chestOrder[i+3].equals("gold")){ 
      next = chestOrder[i+4]; 
      } 
     } 

    } 

    System.out.println(next); 
+0

這隻適用於他的例子,而不是在其他情況下 – Shane

+0

與此相關的其他情況是什麼,所以我會盡力根據那些改進的答案,如果我可以。 – AnjuT

+0

如果他想要銀金或銀金或銀等的結果。 – Shane

0
public static void searchStringArray() { 
     String[] chestOrder = { "silver", "silver", "silver", "gold", "silver", 
       "silver", "gold", "silver", "silver" }; 

     String searchString = "silver silver silver gold"; 
     StringBuilder tempStr = new StringBuilder(); 
     for (String s : chestOrder) { 
      tempStr.append(s + " "); 
     } 
     Scanner scanner = new Scanner(tempStr.toString()); 
     while (scanner.hasNext()) { 
      if (null != scanner.findInLine(searchString)) { 
       System.out.println("" + scanner.next()); 
      } else { 
       scanner.next(); 
      } 
     } 
     scanner.close(); 

    } 
+0

謝謝:)但我怎麼能只有一個結果。因爲'scanner.next()'將我的其他值返回給我。例如'結果=銀銀金'。但我想要'結果=銀子'。只有第一個結果。這是可能的 ?如果是的話,你知道嗎?我嘗試使用'scanner.nextLine',但它是一樣的 – CBJul

+0

你試過這段代碼嗎?我已經測試過,然後發佈。試試一旦它達到你想要的輸出。 –