我需要解析从电子邮件内容创建的字符串并提取数据。电子邮件的结构如下所示:
Some email text..............
//these properties I have to extract
Name: SomeName
Surname: SomeSurname
Email: SomeEmail
Adress: some adress
etc...
Some email text................
您是否了解一些技巧,如何解析此字符串并提取数据? 我找到了一些方法,但它有缺陷,因为当值有空格时它不起作用,就像上面的Adress一样。
String searchText = "Name:";
int lastIndexOf = content.lastIndexOf(searchText);
String substring = content.substring( 1 + lastIndexOf + searchText.length());
String substring1 = substring.substring(0, substring.indexOf(" "));
答案 0 :(得分:0)
以下是解决方案的代码:
FileReader file;
String sCurrentLine;
String searchString = "Name";
try {
file = new FileReader("D:\\junk\\Sample.txt");
BufferedReader br = new BufferedReader(file);
br = new BufferedReader(new FileReader("D:\\junk\\Sample.txt"));
while ((sCurrentLine = br.readLine()) != null) {
String splitString = sCurrentLine.substring(0, sCurrentLine.indexOf(':'));
splitString = splitString.replace(" ", "");
if (splitString.equalsIgnoreCase(searchString)) {
System.out.println(sCurrentLine.substring(sCurrentLine.indexOf(':')).replace(":",""));
break;
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
让我解释一下代码:
这里我们从文本文件中获取输入。文本文件包含key-value
映射
在我们阅读该文件后,我们会将其解析为String
sCurrentLine
然后,我们首先从':'
拆分字符串,然后我们删除所有空格,然后将分割字符串存储在splitString
中,这将成为没有空格的密钥。
然后我们将splitString
与searchString
进行匹配。如果匹配,那么我们打印在':'
之后的字符串部分。
希望它有所帮助!