0

次のコードを文字列として持っています

[444398, 1]
[111099, 0]
[188386, 2]
[149743, 0]

各数値をintとして2次元配列を作成したいと思います。例えば、

int[][] temp = new int[4][2]

私は使用しようとしています

String challengetemp = Arrays.toString(Challenge.challenge(players[0], players[1]));
challengeList[i][i] = Integer.parseInt(challengetemp.split("\\|",-1));

しかし、まず、ParseInt は型の不一致を取得しており、エラーが発生します。

その後、整数として配列から情報にアクセスできる必要があります

4

2 に答える 2

2

そして、私はStringTokenizerを利用してこのようなことをします。

    String str = "[444398, 1][111099, 0][188386, 2][149743, 0]";

        str = str.replace("[","");
        str = str.replace("]","|");

        int arr[][] = new int[4][2];
        StringTokenizer token = new StringTokenizer(str,"|");
        for(int i=0;i<4;i++)
        {
            StringTokenizer nextToken = new StringTokenizer(token.nextToken(),",");
         for(int j=0;j<2;j++)
          {
            String tokenValue = nextToken.nextToken();
            if(tokenValue.contains("|"))
            {
                tokenValue.replace("|", "");
            }
            arr[i][j]= Integer.parseInt(tokenValue.trim());
          }
        }

        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 2; j++) {
                System.out.println(arr[i][j]);
            }
        };

また、必要な数の String を int 配列に解析できるように、ループを少し変更する必要があります。

于 2013-07-12T19:16:12.043 に答える
1

私はこのようなことをします:

    String string = "[444398, 1]";
    string = string.substring(1, string.length()-1); //Turns it into "444398, 1"
    String[] stringInArray = string.split(", "); // Then makes it ["444398", "1"]

    int[][] temp = new int[4][2];

    temp[0][0] = Integer.parseInt(stringInArray[0]);
    temp[0][1] = Integer.parseInt(stringInArray[1]);

もちろん、複数のことを行うには、ループに変更する必要があります。

于 2013-07-12T18:31:06.620 に答える