我有一个像
这样的字符串String email = "mailto://abc@gmail.com";
我想只获取电子邮件地址,但不使用固定号码,例如
email.substring(9);
任何更好的方法。
答案 0 :(得分:3)
字符串是URI
格式,所以你可以做
String email = "mailto://abc@gmail.com";
URI uri = URI.create(email);
String address = uri.getUserInfo() + "@" + uri.getHost();
答案 1 :(得分:3)
使用正则表达式:
String email = "mailto://abc@gmail.com";
// Builds a pattern with a capturing group ()
Pattern mailtoPattern = Pattern.compile("mailto://(.*)");
// Give your string to a matcher generated by the compiled pattern
Matcher mailMatcher = mailtoPattern.matcher(email);
// If your String is correctly formatted you can attempt to capture
// the content between parenthesis
if (mailMatcher.find()) {
String mailValue = emailMatcher.group(1);
}
使用正则表达式也可以帮助您验证作为输入提供的字符串,您甚至可以验证邮件字符串是否确实是一个邮件地址(有疯狂的人有各种疯狂的表达式来验证它们)。我建议你在这里阅读非常全面的JavaDoc:http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html。
答案 2 :(得分:0)
不使用正则表达式
String string = "mailto://abc@gmail.com";
final String PREFIX = "mailto://";
String email = string.substring(PREFIX.length());