读取由文件中的空格分隔的字符串的最佳方法

时间:2014-06-13 23:11:05

标签: java file-io

所以我正在开展一个项目,我试图以这种格式从文本文件中读取数千行:

EMAILADDRESS1@EXAMPLE.COM     1209381231
EMAILADDRESS2@EXAMPLE.NET     1241231231
EMAILADDRESS3@EXAMPLE.ORG     1231585849
EMAILADDRESS4@EXAMPLE.COM     2132389558
...

等。等等....

现在,我想将每个电子邮件地址读成一个字符串并完全忽略它后面的数字,它们对我来说并不重要。这些数字与空格所代表的电子邮件分开。

那么,将每个电子邮件地址读入自己的字符串的最佳方法是什么?

4 个答案:

答案 0 :(得分:0)

查看split()方法。您指定一个字符,它会根据该字符拆分字符串。然后将字符分隔的字符串部分放入一个数组中,该方法将返回给您。

然后,假设在电子邮件地址开始之前没有空格字符,您可以获取数组的第0个元素并按照您喜欢的方式处理它。将它放入List中,将列表流式传输到文件中,无论如何。

答案 1 :(得分:0)

使用split()方法!这绝对是最好的方式!其他方式可能更难或占用更多性能!

String[] strings = myString.split(" ");

答案 2 :(得分:0)

您可以使用:

String str = "HERE YOUR CONTENT";
String[] mailArray = str.split("\\s+\\d+");

如果您打印mailArray,它将包含:

mailArray => 
(
    EMAILADDRESS1@EXAMPLE.COM,
    EMAILADDRESS2@EXAMPLE.NET,
    EMAILADDRESS3@EXAMPLE.ORG,
    EMAILADDRESS4@EXAMPLE.COM
)

答案 3 :(得分:0)

您可以尝试使用java scanner class

String str = "name of your text file"
Scanner scan = new Scanner(new File(str));

ArrayList<String> emails = new ArrayList<String>();

Pattern pattern = //some email regex
String tmp = ""
while(tmp = scan.next(pattern)){

emails.add(tmp);

}