BufferedReader и сканер nextLine (), кажется, помогают слишком сильно, удаляя все завершающие пробелы.Мне нужно сохранить столбцы, которые на данный момент могут быть пустыми значениями, но стесняйтесь перебирать каждую строку, используя next () или getBytes (), идентифицируя символы табуляции, поскольку потенциально могут быть миллионы строк с сотнями столбцов.
Есть ли альтернативы этим двум методам, которые мне не хватает для чтения строк?Есть ли в этих методах флаги или какие-либо другие параметры для сохранения пробелов?Я просто заставляю пользователя использовать непустые поля?Я не одинок в попытках сохранить пробелы, не так ли?
У меня проблема с ним при чтении из файла.У меня есть этот код
import java.lang.*;
import java.util.*;
import java.io.*;
public class stringTest
{
public static void main (String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new FileReader("wtf.txt"));
String l = br.readLine();
while (l != null) {
System.out.println(l.split("\t").length);
l = br.readLine();
}
}
}
wtf.txt содержит
h\tu\tr\tf\n
o\tm\tg\t\t\n
И вывод
4
3
Кроме того, если я добавлю строку в любом месте, что всевкладки, то есть
h\tu\tr\tf\n
\t\t\t\t\t\n
o\tm\tg\t\t\n
Вывод
4
0
3
Я не думаю, что это проблема с разделением, потому что, если я использую код
String s = "w\tt\tf\t\t\n";
System.out.println(""+s.split("\t").length);
String s1 = "w\tt\tf\tx\n";
System.out.println(""+s1.split("\t").length);
String s2 = "\t\t\t\t\t\t\n";
System.out.println(""+s2.split("\t").length);
вывод
5
4
6