我有一个名为messages.txt的文件文本如下:
6107586533 44335557075557777
4848675309 53366 6699044404666804448
6107584096 94466602777330999666887770223377778077778 883 336687777
第一列表示收件人的数字,第二列表示数字编码的邮件(我将使用解码器方法解码我已创建的第二列数字。)我使用以下方法读取文件文字:
public void readMessagesFromFile() throws Exception{
BufferedReader in = new BufferedReader(new FileReader("messages.txt"));
String str;
List<String> list = new ArrayList<String>();
while((str = in.readLine()) != null){
list.add(str);
}
String[] stringArr = list.toArray(new String[3]);
for (String x: stringArr) {
System.out.print(x);
}
}
然而,它存储了所有内容(应该如下):
6107586533 443355570755577774848675309 53366 66990444046668044486107584096 94466602777330999666887770223377778077778 883 336687777
如何阅读和存储以下部分:
44335557075557777
53366 6699044404666804448
94466602777330999666887770223377778077778 883 336687777
我想以行的形式阅读和存储,即。第二列中的每一行都将分配给数组的每个索引),只想在存储第二列时排除第一列。
答案 0 :(得分:1)
这将分割线并将所有内容保留在第一个标记
之后 List<String> list = new ArrayList<String>();
while((str = in.readLine()) != null){
String[] temp = str.trim().split("\\s+",2);
list.add(temp[1]);
}
对trim
的调用以防万一有空白。
关于将代码转换为数组,您不需要它,您可以遍历列表。
for (String s : list)
{
System.out.println(s);
}