2016-07-08 5 views
0

У меня есть программа, которая будет принимать значения из массива.Чтение значений для графика из текстового файла?

int graph[][] = new int[][] {{0, 2, 0, 6, 0}, 
           {2, 0, 3, 8, 5}, 
           {0, 3, 0, 0, 7}, 
           {6, 8, 0, 0, 9}, 
           {0, 5, 7, 9, 0}, 
           }; 

Я попытался изменить встроенный вход в текстовый файл, но я получаю ошибки несоответствия типа.

Scanner inFile = new Scanner(new File("split_this.txt")); 
String s = inFile.nextLine(); 
int numberOfVertices = Integer.parseInt(s); 
while (inFile.hasNext()) { 
    s = inFile.nextLine(); 
    String[] triplet = s.split("[\\|]"); 
    String[][] tokens = new String[ triplet.length ][]; 
    for (int i = 0; i < triplet.length; i++){ 
     tokens[i] = triplet[i].split("[,]"); 
    } 
    for (int z = 0; z < tokens.length; z++){ 
     for (int i = 0; i < tokens[z].length; i++){ 
      int graph[][] = tokens[z][i]; 
     } 
    } 
} 

Пожалуйста, помогите мне.

+0

Является ли это мной или является графическим массивом int [], и вы пытаетесь сохранить строку val ues из массива токенов массив целых чисел? – DarkV1

+0

Просьба показать пример файла 'split_this.txt' –

+0

это содержимое для этого файла« split_this.txt » {0, 2, 0, 6, 0}, {2, 0, 3, 8, 5}, {0, 3, 0, 0, 7}, {6, 8, 0, 0, 9}, {0, 5, 7, 9, 0}, –

ответ

0

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

row col 
val11 val12 val13 ... 
val21 val22 val23 ... 
val31 val32 val33 ... 
... 

примере для Вашего случая

5 5 
0 2 0 6 0 
2 0 3 8 5 
0 3 0 0 7 
6 8 0 0 9 
0 5 7 9 0 

После этого , используйте сканер для чтения ввода:

Scanner scan - new Scanner(file); 
int row = scan.nextInt(); 
int col = scan.nextInt(); 
int[][] graph = new int[row][col]; 
for(int r=0; r<row; r++) { 
    for(int c=0; c<col; c++) { 
     graph[r][c] = scan.nextInt(); 

    } 
} 
+0

получение исключения указателя на исключение при компиляции. Вот команда сканера: «Сканирование сканера = новый сканер (« in.txt »); @CMPS –

+0

разместить трассировки стека пожалуйста – CMPS

+0

«Исключение в потоке„главный“java.util.InputMismatchException \t в java.util.Scanner.throwFor (Scanner.java:864) \t в java.util.Scanner.next (Сканер .java: 1485) \t на java.util.Scanner.nextInt (Scanner.java:2117) \t в java.util.Scanner.nextInt (Scanner.java:2076) \t на MST.main (MST.java: 100) ' –

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