有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 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]);你需要将你的令牌集合连接成每行的