Java метод split () удаляет пустые строки в конце? [Дубликат]

    

На этот вопрос уже есть ответ здесь:

    

Ознакомьтесь с приведенной ниже программой.

try {
    for (String data : Files.readAllLines(Paths.get("D:/sample.txt"))){
        String[] de = data.split(";");
        System.out.println("Length = " + de.length);
    }
} catch (IOException e) {
    e.printStackTrace();
}

Sample.txt:

1; 2; 3; 4
А; Б ;;
а, Ь; с;

Вывод:

Длина = 4
Длина = 2
Длина = 3

Почему второй и третий выходные данные дают 2 и 3 вместо 4. В файле sample.txt условие для 2-й и 3-й строки должно быть введите новую строку (\n или введите) сразу после указания разделителя для третьего поля. Может кто-нибудь помочь мне, как получить длину как 4 для 2-й и 3-й строки без изменения условия файла sample.txt и как напечатать значения из de[2] (выдает ArrayIndexOutOfBoundsException)?

107 голосов | спросил raja 13 FebruaryEurope/MoscowbFri, 13 Feb 2009 16:40:35 +0300000000pmFri, 13 Feb 2009 16:40:35 +030009 2009, 16:40:35

1 ответ


0

взгляните на docs , вот важная цитата:

[...] the array can have any length, and trailing empty strings will be discarded.

Если вам это не нравится, взгляните на комментарий Фабиана. При вызове String.split(String) он вызывает String.split(String, 0) и которая отбрасывает завершающие пустые строки (как говорят документы) при вызове String.split(String, n) с n < 0 ничего не откажется.

ответил Johannes Weiss 13 FebruaryEurope/MoscowbFri, 13 Feb 2009 16:45:59 +0300000000pmFri, 13 Feb 2009 16:45:59 +030009 2009, 16:45:59

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132