2013-07-12 3 views
0

У меня есть следующий код, как СтруныСтроки целочисленного массива

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

, и я хочу сделать двумерный массив с каждым номером как междунар. Например,

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 получает несоответствие типов и приводит к ошибке.

я должен был бы быть в состоянии получить доступ к информации из массива впоследствии как целых

+2

'' parseInt (String) '' принимает строку как параметр, а не '' String [] '', что и возвращает '' split (String, int) ''. – f1sh

+2

Почему вы раскалываете '' '? Можем ли мы увидеть, как выглядит ваш фактический вход? И что такое 'Challenge'? Пожалуйста, отправьте сообщение [SSCCE] (http://sscce.org/) –

+0

(я еще не проверял их в коде, но ..), разбивая на '' [\\ [\\] \ n] "' должен делиться вверх по вашей строке в первом индексе, а затем раскалываясь на '', '', следует позаботиться о внутренних массивах. – AdamSpurgin

ответ

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]); 

Вы должны будете изменить его в петлю для выполнения мультипликатор конечно!

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]); 
      } 
     }; 

И вы должны изменить немного к петле, так что было бы разобрать, как многие строки в целочисленный массив, как вы хотите.

Смежные вопросы