java只在某些地方删除空格,而不是在任何地方
我从一个txt文件中获取txt,并试图将其存储在arraylist中。在txt文件中,这意味着选票不在一起,而老师将其放在单独的一行。所以我们必须把所有的选票放在一起,但我不能把它们放在一起。她把第一张选票放在一条线上,如下面的例子所示。我们必须把剩下的都放在一起。我正在使用fileinputstream从文本文件中收集txt
文本如下所示:
person 1 person 2 person 3 <b> 1 2 3 <b> 1 3 2
我希望它看起来像这样
person 1 person 2 person 3 <b> 1 2 3 <b> 1 3 2
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter file name: ");
Scanner keyboard = new Scanner(System.in);
String fileName = keyboard.next();
File file = new File(fileName);
ArrayList<String> ballot;
ballot = new ArrayList<String>();
FileInputStream fstream = new FileInputStream(fileName);
DataInputStream ds = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(ds));
// Pattern p;
// Matcher m;
String strLine;
String inputText = "";
String newline = System.getProperty("line.separator");
while ((strLine = br.readLine()) != null) {
ballot.add(strLine);
}
# 1 楼答案
你需要使用
StringBuilder sb = new StringBuilder();
。每次你有一个标记String t
,调用sb.append(t.trim()).append(' ');
。解析完文件后,请调用sb.toString();
。如果您想在这里或那里添加换行符,请使用sb.append('\n');
如果你想要一个令牌数组,你应该使用一个
ArrayList<String> al = new ArrayList<String>;
每当你有一组令牌组成一行时,使用al.add(s);
完成后,调用String[] result = al.toArray(new String[al.length]);
你需要将你的令牌集合连接成每行的