2

次の機能を実行したい:

指定された段落から指定された文字列を抽出します。

String str= "Hello this is paragraph , Ali@yahoo.com . i am entering  random  email here as this one  AHmar@gmail.com " ; 

私がしなければならないことは、段落全体を解析し、電子メールアドレスを読み取り、それらのサーバー名を出力 することです.メソッドで for ループを使用して試しました.それを手伝ってください。substringindexOf

4

3 に答える 3

3

この場合、正規表現を使用する必要があります。

以下の正規表現を試してください: -

String str= "Hello this is paragraph , Ali@yahoo.com . i am " +
            "entering  random  email here as this one  AHmar@gmail.com " ;

Pattern pattern = Pattern.compile("@(\\S+)\\.\\w+");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
     System.out.println(matcher.group(1));
}

出力: -

yahoo
gmail

更新: -

substringと を使用したコードは次のindexOfとおりです: -

   String str= "Hello this is paragraph , Ali@yahoo.com . i am " +
        "entering  random  email here as this one  AHmar@gmail.com " ;

   while (str.contains("@") && str.contains(".")) {

        int index1 = str.lastIndexOf("@");  // Get last index of `@`
        int index2 = str.indexOf(".", index1); // Get index of first `.` after @

        // Substring from index of @ to index of .      
        String serverName = str.substring(index1 + 1, index2);
        System.out.println(serverName);

        // Replace string by removing till the last @, 
        // so as not to consider it next time
        str = str.substring(0, index1);

    } 
于 2012-10-23T20:30:46.387 に答える
2

メールを抽出するには、正規表現を使用する必要があります。このテスト ハーネス コードから始めます。次に、正規表現を作成すると、電子メール アドレスを抽出できるはずです。

于 2012-10-23T20:29:39.117 に答える
1

これを試して:-

  String e= "Hello this is paragraph , Ali@yahoo.com . i am entering random email here as this one AHmar@gmail.comm";
  e= e.trim();  
  String[] parts = e.split("\\s+");  
  for (String e: parts) 
  {
  if(e.indexOf('@') != -1)
  {
   String temp = e.substring(e.indexOf("@") + 1); 
  String serverName = temp.substring(0, temp.indexOf(".")); 
  System.out.println(serverName);        }}
于 2012-10-23T20:31:11.203 に答える