2

我想使用 Substring 从字符串中提取服务器名称。我不确定我是否应该迭代一个循环或 with StringTokenizer, indexof,lastindex或其他任何东西。

基本要求是,我应该使用substring()

例如:

 id@yahoo.com  ,  my@gmail.com etc

这在段落中,应该像这样打印服务器名称:

Server names: yahoo,   gmail ... 
4

2 回答 2

4

假设这是一个家庭作业,这里有几点可以帮助你:

  • 您要查找的子字符串在@符号后一个字符开始
  • 服务器名称以.字符串中的第一个点结尾
  • 您使用(您猜对了!)substring(from,to)方法获取子字符串
  • 中的第一个索引substring是包容性的;第二个索引不包括在内
  • 您通过 using 方法找到字符的索引indexOf('x'),替换x您搜索的字符
于 2012-10-20T03:52:54.387 回答
2
String emails = "id@yahoo.com  ,  my@gmail.com ,  luigi@microsoft.com";
emails = emails.trim();  // get rid of spaces.
String[] parts = emails.split(",");  // emails array.

for (String email : parts) 
{
    String temp = email.substring(email.indexOf("@") + 1); // e.g. @google.com
    String serverName = temp.substring(0, temp.indexOf("."));  // e.g. google
    System.out.println(serverName);  //prints google
}

样本运行(对于单个输入):

输入: mario@google.com 输出:google

输入: alvaro.arbeloa@realmadrid.com 输出: realmadrid

输入: luigi@forest.yahoo.com 输出:森林

编辑:如果您的电子邮件没有用逗号或任何其他分隔符分隔,那么您可以使用以下代码提取单个电子邮件地址:

String emails = "id@yahoo.com    my@gmail.com";
String[] parts = emails.split("\\s+");

表示我trim()这次没有使用。拆分后,您可以再次使用上述相同的 for 循环。

于 2012-10-20T03:51:24.743 回答