Java 读取文件中的所有电子邮件
根据问题的陈述,我们需要找到文件中存在的所有电子邮件。
让我们来探索一下这篇文章,看看如何使用Java编程语言实现。
展示一些示例
实例1
假设有一个给定的段落,其中包含许多不同的电子邮件地址,我们想提取出该段落中的所有电子邮件地址。例如:
“我是一个带有电子邮件boy54@gmail.com的男孩。我的朋友的电子邮件是friend78@gmail.com。”。”
从上面的段落中,我们需要在段落中提取出给定的两个电子邮件地址,即boy54@gmail.com和friend78@gmail.com。
实例2
假设有一个给定的段落,其中包含许多不同的电子邮件地址,我们想提取出该段落中的所有电子邮件地址。例如:
“嘿,我是Rakesh Agarwal,我的电子邮件地址是rakesh@tutorialspoint.com。我的朋友的电子邮件地址是prakash@gmail.com。”
从上面的段落中,我们需要在段落中提取出给定的两个电子邮件地址,即rakesh@tutorialspoint.com和prakash@gmail.com。
实例3
假设有一个给定的段落,其中包含许多不同的电子邮件地址,我们想提取出该段落中的所有电子邮件地址。例如:
“嘿,我是Rakesh Agarwal,我的电子邮件地址是rakesh@yahoo.com。
从上面的段落中,我们需要在段落中提取出给定的电子邮件地址,即rakesh@yahoo.com。
步骤
- 步骤1 - 导入必要的Java库。
-
步骤2 - 为匹配模式定义正则表达式。
-
步骤3 - 分配文本文件的位置或从用户处输入。
-
步骤4 - 使用匹配器方法匹配所需的格式。
语法
compile() - compile()方法用于多次将文本或表达式与正则表达式进行匹配。compile()方法用于编译作为字符串传递的给定正则表达式。它属于Pattern类。
matcher() - matcher()方法通过解释Pattern在字符序列上执行匹配操作。
readLine() - readLine()方法用于从文本中读取给定行。它从控制台屏幕获取输入,它属于BufferReader类。
多种方法
我们提供了不同的方法来解决问题。
- 使用从文件中的输入
-
使用从控制台的用户输入
让我们逐个查看程序及其输出。
方法1:通过使用来自文件的输入
示例
在这种方法中,我们将从系统本身以文本文件的形式接收输入,并过滤出该文本文件中所有的电子邮件地址。
import java.util.regex.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
// Regular expression for email id and assigning it to pattern method
Pattern pat=Pattern.compile( "[a-zA-Z0-9]" + "[a-zA-Z0-9_.]" + "*@[a-zA-Z0-9]" + "+([.][a-zA-Z]+)+");
//Assigning the location of the text file
BufferedReader b = new BufferedReader(new FileReader("E:\file1.txt"));
//reading yo.txt file
String l = b.readLine();
while (l != null) {
//Matching the required format using matcher method
Matcher mat = pat.matcher(l);
while (mat.find()) {
System.out.println(mat.group());
}
l = b.readLine();
}
}
}
输出
abhaprakash@123.com
abhaprakash@tutorialspoint.com
rancho45@gmail.com
y@gmail.com
asifa.sandal120098@yahoo.com
welcometoCodespeedy@hotmail.com.abcxyz
12345@qwerty.asd
方法2:通过控制台输入
示例
在这种方法中,我们将从用户获取输入,并筛选出其中所有的电子邮件地址。
import java.util.regex.*;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
// Regular expression for email id and assigning it to pattern method
Pattern pat=Pattern.compile( "[a-zA-Z0-9]" + "[a-zA-Z0-9_.]" + "*@[a-zA-Z0-9]" + "+([.][a-zA-Z]+)+");
//Taking input from the console
Scanner b = new Scanner(System.in);
System.out.println("Write the Paragraph containing email ids");
//reading yo.txt file
String l = b.nextLine();
System.out.println("\nEmail ids are-");
while (l != null) {
//Matching the required format using matcher method
Matcher mat = pat.matcher(l);
while (mat.find()) {
System.out.println(mat.group());
}
l = b.nextLine();
}
}
}
输出
Write the Paragraph containing email ids
abhaprakash@123.com
abhaprakash@com
abhaprakash$gmail.com
abha
abhaprakash@tutorialspoint.com
rancho45@gmail.com
y@gmail.com
asifa.sandal120098@yahoo.com
welcometoCodespeedy@hotmail.com.abcxyz
12345@qwerty.asd
Email ids are-
abhaprakash@123.com
abhaprakash@tutorialspoint.com
rancho45@gmail.com
y@gmail.com
asifa.sandal120098@yahoo.com
welcometoCodespeedy@hotmail.com.abcxyz
12345@qwerty.asd
在本文中,我们探讨了如何在Java中读取文件中的所有电子邮件。