Еще один файл с текстом в Arraylist - PullRequest
0 голосов
/ 18 апреля 2011

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

    import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ReadWithScanner {



    public static void main(String[] args) throws IOException {
            Scanner scanner = new Scanner(new File("/Users/evanlivingston/2.txt"));
            List<Double> doubles = new ArrayList<Double>();{
            while(scanner.hasNextLine()){
                doubles.add(scanner.nextDouble());
            }
            for( int counter=0; counter<doubles.size(); counter++ ) {
                // j=i+1 to calculate the distance between two points only once, 
                // not one way and back; also skip calculating distance between 
                // the same point
                for( int j=counter+1; j<doubles.size(); j++ ) { 
                    Double c1 = doubles.get(counter);
                    Double c2 = doubles.get(j); 
            System.out.println(c1 - c2);    
                }
            }
        }
    }
    }

Мой текстовый файл выглядит так:

0 10 12 4 5 6

0 10 12 4 5 7

... 20 20 20 20 20 20

Ответы [ 2 ]

3 голосов
/ 18 апреля 2011

Я думаю, что проблема здесь:

while(scanner.hasNextLine()){
            doubles.add(scanner.nextDouble());
        }

Вы делаете что-то не так, если ваше намерение состоит в том, чтобы проанализировать каждый дубль в строке, и есть несколько строк. Я думаю, вам нужно что-то вроде:

while (scanner.hasNextLine()){
      String currentLine = scanner.nextLine();
      //here iterate the string currentLine to get each double
}
1 голос
/ 19 апреля 2011

Расширение ответа 0verbose: кажется, что вы хотите получить элементы построчно, т. Е. Позже вы захотите узнать, в какой строке находился двойник.создайте подсписок с двойниками для каждой строки.Если все строки имеют одинаковое количество элементов, вы можете использовать один список, а затем использовать index = line_no * num_elements_per_line + element_index_in_line для адресации определенного элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...