2

私は単一文字のchar配列[4] [4]を持っています。'a' で、別の文字列と比較するために、配列の列だけを文字列に格納しようとしています。しかし、私が抱えている問題は、元の要素を文字列に追加し続けることです。以下の私のコードには、配列に「car」と「trip」という単語が含まれており、それらの単語を含む別の文字列と比較して、それを真にしたいと考えています。これが私のコードです:

char[][] puzzle = {{'a', 'c', 'h' ,'t'}, 
                   {'v', 'a', 'x', 'r'}, 
                   {'x', 'r', 'e', 'i'}, 
                   {'c', 'q', 'i', 'p'}
                  };

for(int row=0; row<puzzle.length; row++)
{

  String match = "";
  String matchword ="";
  for(int col=0; col<puzzle.length; col++)
  {
   match += puzzle[col][row];
   System.out.print(match);
  }
 System.out.println();
}

文字列への出力は次のとおりです。 aavavxavxc ccacarcarq hhxhxehxei ttrtritrip

代わりに: avxc carq hxei trip

どんな助けでも大歓迎です。

4

3 に答える 3

0

配列に基づいて正規表現を使用できますpuzzle[][]

        char[][] puzzle = {{'a', 'c', 'h' ,'t'}, 
            {'v', 'a', 'x', 'r'}, 
            {'x', 'r', 'e', 'i'}, 
            {'c', 'q', 'i', 'p'}
           };

    // regex array
    String[] regexs = new String[puzzle.length];

    int counter = 0;
    for(int row=0; row<puzzle.length; row++) {
        String match = "[";

        for (int col = 0; col < puzzle.length; col++) {
            match += puzzle[col][row];
            match += ",";
        }

        // Add regular expression into array
        regexs[counter] = match + "]";

        counter++;
    }

    // Prepare
    Pattern p = null;
    Matcher m = null;

    // Now parse with your inputs
    for(String arg : args) {

        for(String regex : regexs) {
            p = Pattern.compile(regex);
            m = p.matcher(arg);

            if(m.find()) {
                System.out.println(">>> OK. input: "+arg+" and matcher:"+regex);
            } else {
                // other output
            }
        }
    }

正規表現に追加を作成して楽しむことができます。

于 2013-05-16T05:11:18.527 に答える
0

あなたが何を正しく求めているのか理解できたら、これを試してください。

    char[][] puzzle = {
                        {'a', 'c', 'h' ,'t'}, 
                       {'v', 'a', 'x', 'r'}, 
                       {'x', 'r', 'e', 'i'}, 
                       {'c', 'q', 'i', 'p'}
                      };

    String output = "";
    //we need to go throug the entire set of rows, but the tricky bit is in getting just say the first set of values [1][1], [2][1]... 
    //rather than getting the exterior as you were previously. 

    //Start by selecting element 1, 2, 3 from the outer array
    for(int i = 0; i < puzzle.length; i ++) {

        //Then perform the inner loop
        for(int j = 0; j < puzzle[i].length; j++) {
            output = output + puzzle[j][i]; //Here being the trick, select the inner loop first (j) and the inner second. Thus working your way through 'columns' 
        }

        output = output +"\n"; 
    }

    System.out.println(output);

 }
于 2013-05-16T01:50:04.000 に答える