Убрать пробелы только в определенных местах не везде - PullRequest
0 голосов
/ 27 мая 2011

Я беру txt из txt файла и пытаюсь сохранить его в массиве. В txt-файле значения бюллетеней не совпадают, вместо этого учитель разместил их в отдельной строке. Таким образом, мы должны собрать все бюллетени вместе, но я не могу собрать их вместе, она поставила первый бюллетень на линию, как в примере ниже. И мы должны сделать все остальное вместе. Я использую fileinputstream для сбора текста из текстового файла.

текст выглядит так:

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 Ответ

0 голосов
/ 27 мая 2011

Вам нужно использовать 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]);. Вам нужно будет объединить ваш набор токенов в s для каждой строки.

...