Java 从字符串中提取特定内容的方法?

Java 从字符串中提取特定内容的方法?,java,Java,我有一个非常长的列表,其中有上千封电子邮件和姓名,格式如下: Name Class Email Name Class Email ...Etc... 有没有一种方法可以将整个列表粘贴到JTextPane或控制台中,让程序只挑选电子邮件并打印出来 如何做到这一点?您可以从使用分隔符标记传入文本开始。在你的情况下,我假设它是一个空格字符 String str = "John C504 john@doe.com"; String[] arr = str.split(" "); if(arr.len

我有一个非常长的列表,其中有上千封电子邮件和姓名,格式如下:

Name Class Email
Name Class Email
...Etc...
有没有一种方法可以将整个列表粘贴到
JTextPane
或控制台中,让程序只挑选电子邮件并打印出来


如何做到这一点?

您可以从使用分隔符标记传入文本开始。在你的情况下,我假设它是一个空格字符

String str = "John C504 john@doe.com";
String[] arr = str.split(" ");

if(arr.length > 2){
    String email = arr[2];
}
需要考虑的事项:

  • 如果名称之间有空格字符,例如:“John Doe”,则此技术可能不起作用。更好的方法是在文本中使用不同的分隔符
  • 您还可以使用正则表达式从字符串中提取电子邮件地址。如果电子邮件地址位于字符串的开头/中间,而不是字符串的末尾,则此技术不会受到影响
    我不是专家,但我会这样做:

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.Scanner;
    
    public class GiveEmails {
    
        public static void main(String[] args) throws FileNotFoundException {
            Scanner infile = null;
            if (args.length == 1) {
                infile = new Scanner(new File(args[0]));
            }
    
            while (infile != null && infile.hasNext()) {
                String line = infile.nextLine();
                String[] linearray = line.split(" ");
                System.out.println(linearray[linearray.length-1]); // print the last token
            }       
        }
    }
    

    将文件名作为第一个参数,然后返回每行的最后一个标记,使用空格作为分隔符。

    您能告诉我们您的努力吗?您可以使用正则表达式,但这可能有点过分了。。。