2017-05-25 37 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

ありがとう:)しかし、私はどのように1つの結果しか持っていないのですか? 'scanner.next()'は私の残りの値を返します。例文の結果=シルバーシルバーゴールド。しかし、私は 'result = silver'をしたい。最初の結果のみ。それが可能だ ?はいの場合は、どのように知っていますか?私は 'scanner.nextLine'を使用しようとしましたが、それは同じです – CBJul

+0

このコードを試しましたか?私はそれをテストした後に投稿しました。 plzがあなたの望む出力を満たせばそれを試してください。 –