Допустим, у меня есть строка адреса электронной почты, такая как "John Smith" <JSmith@gmail.com>, и все, что я хочу, это получить адрес электронной почты внутри <>
"John Smith" <JSmith@gmail.com>
<>
Как бы я это сделал, не получая ничего другого?
Поскольку похоже, что вы имеете дело с адресами электронной почты стандартного формата ( RFC 822 ), вы можете рассмотреть возможность использования JavaMail API .Код для того, что вы хотите, прост с этим.Например, если input содержит строку адреса электронной почты:
input
String email = new InternetAddress(input).getAddress();
Regex - хороший способ пойти (http://java.sun.com/developer/technicalArticles/releases/1.4regex/)
Или вы можете просто работать с подстроками ...
Что-то вроде ...
public static String getEmail(String x) { int firstBracket = 0; int secondBracket = 0; firstBracket = x.indexOf("<"); secondBracket = x.indexOf(">"); return x.substring(firstBracket+1, secondBracket); }
Не обязательно самое надежное решение ... но оно должно делать работу, если форма гарантирована.
Попробуйте использовать регулярные выражения.Как то так?
String name = "John Smith <smith@example.com>"; String email = name.replaceFirst(".*<(.*?)>.*","$1");