奇怪的是,但是:
假设您有一个庞大的html页面,如果该页面包含一个电子邮件地址(寻找@符号),您想要返回该电子邮件。
到目前为止,我知道我需要这样的事情:
String email;
if (myString.contains("@")) {
email = myString.substring("@")
}
我知道如何到达@但是如何回到字符串中以找到它之前的内容等?
答案 0 :(得分:0)
如果myString
是您从html页面收到的email
的字符串,那么
如果@
正确,则可以返回相同的字符串。类似下面的内容
String email;
if (myString.contains("@")) {
email = myString;
}
这里面临的挑战是什么?如果是这样,你能解释一下这个挑战吗?
答案 1 :(得分:0)
String email;
if (myString.contains("@")) {
// Locate the @
int atLocation = myString.indexOf("@");
// Get the string before the @
String start = myString.substring(0, atLocation);
// Substring from the last space before the end
start = start.substring(start.lastIndexOf(" "), start.length);
// Get the string after the @
String end = myString.substring(atLocation, myString.length);
// Substring from the first space after the start (of the end, lol)
end = end.substring(end.indexOf(" "), end.length);
// Stick it all together
email = start + "@" + end;
}
这可能有点不对,因为我整天都在写javascript。 :)
答案 2 :(得分:0)
此方法将为您提供字符串中包含的所有电子邮件地址的列表。
static ArrayList<String> getEmailAdresses(String str) {
ArrayList<String> result = new ArrayList<>();
Matcher m = Pattern.compile("\\S+?@[^. ]+(\\.[^. ]+)*").matcher(str.replaceAll("\\s", " "));
while(m.find()) {
result.add(m.group());
}
return result;
}
答案 3 :(得分:0)
我想给你一个方法,而不是确切的代码。
仅使用@符号检查可能不合适,因为在其他情况下也可能。
通过互联网搜索或创建自己的,与电子邮件匹配的正则表达式模式。 (如果您愿意,您也可以为电子邮件提供商添加支票)[这是一个链接](http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/)
Get the index of a pattern in a string using regex并找出子字符串(在您的情况下是电子邮件)。