Как добраться до определенного элемента в списке в java?

У меня есть файл CSV. В нем много линий. В каждой строке несколько значений, разделенных запятыми.

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

CSVReader reader = new CSVReader(new FileReader(
                    "myfile.csv"));
            try {
                List<String[]> myEntries = reader.readAll();
                for (String[] s : myEntries) {
                    System.out.println("Next item: " + s);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

Это печатает

Next item: [Ljava.lang.String;@6c8b058b
Next item: [Ljava.lang.String;@1b192059
Next item: [Ljava.lang.String;@e9ac0f5
Next item: [Ljava.lang.String;@51f21c50
Next item: [Ljava.lang.String;@6e20f237
Next item: [Ljava.lang.String;@34fe315d
Next item: [Ljava.lang.String;@1c5aebd9
Next item: [Ljava.lang.String;@1532021a
Next item: [Ljava.lang.String;@62803d5
Next item: [Ljava.lang.String;@2d13981b
Next item: [Ljava.lang.String;@61672bbb

Я хочу знать, могу ли я получить доступ к отдельным строкам, элементам через List.

т.е.

    1,2,3,4,5
    6,7,8,9,10
    11,12,13,14
    15,16,17,18

Я хочу String [] nextLine = 1,2,3,4,5 (где nextLine [0] = 1 nextLine [1] = 2 и т. Д.), А в следующей итерации nextLine должно быть 6,7 , 8,9,10 и т. Д.

26
задан 25 October 2011 в 19:24
поделиться

3 ответа

На данный момент:

for (String[] s : myEntries) {
   System.out.println("Next item: " + s);
}

Вам необходимо объединить массив строк в строку. Проверьте это сообщение: Метод, чтобы полностью изменить эффект Java String.split ()?

2
ответ дан 28 November 2019 в 07:09
поделиться

String [] - это массив строк. Такой массив внутренне является классом. Как и все классы, которые явно не расширяют какой-либо другой класс, он расширяет Object неявно. Метод toString() класса Object по умолчанию дает вам представление, которое вы видите: имя класса, сопровождаемое @, за которым следует шестнадцатеричный хеш-код. Поскольку класс String [] не переопределяет метод toString (), в результате вы получите его.

Создайте некоторый метод, который выводит элементы массива для вас. Выполните итерацию по массиву и используйте System.out.print() (не print * ln *) для элементов.

0
ответ дан 28 November 2019 в 07:09
поделиться

Проверьте функцию разбиения строки Здесь и используйте что-то вроде этого String[] results = input.split("\\s+");. Бит регулярного выражения разбивается на пустые пространства, это должно сработать

0
ответ дан 28 November 2019 в 07:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: