2

Substring を使用して、文字列からサーバー名を抽出したいと考えています。StringTokenizerループを反復する必要があるのか​​ 、 、indexof、などを反復する必要があるのか​​ わかりませんlastindex

基本的な要件は、使用する必要があることですsubstring()

例えば:

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

これは段落に入り、次のようにサーバー名を出力する必要があります。

Server names: yahoo,   gmail ... 
4

2 に答える 2

4

これは宿題であると仮定して、そこに到達するためのいくつかのポイントを次に示します。

  • 探している部分文字列は、@記号の 1 文字後に始まります
  • .サーバー名は文字列の最初のドットで終わります
  • substring(from,to)メソッドで部分文字列を取得します (ご想像のとおりです!)。
  • の最初のインデックスsubstringは包括的です。2 番目のインデックスは包括的ではありません
  • メソッドを使用して文字のインデックスを見つけ、検索する文字を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 に答える