2014-04-09 55 views
-1

我有超過一千個電子郵件和名稱,格式這個很長的名單:如何從字符串中提取特定的東西?

Name Class Email 
Name Class Email 
...Etc... 

是沒有辦法,我會這樣整個列表粘貼到JTextPane或控制檯,並有計劃挑選出的方式只有電子郵件和打印他們?

怎麼會這樣做呢?

+1

你能告訴我們你的努力 –

+0

也許你可以使用正則表達式,但可能這會有點矯枉過正...... [看這裏](http://docs.oracle.com/javase/7/docs/api/的java/UTIL /正則表達式/ Pattern.html) – Ennosigaeon

回答

0

您可以通過使用分隔符標記傳入文本開始。在你的情況下,我假設它是一個空格字符。

String str = "John C504 [email protected]"; 
String[] arr = str.split(" "); 

if(arr.length > 2){ 
    String email = arr[2]; 
} 

需要考慮的事情:

  1. 如果姓名與如之間有空格字符:「李四」,那麼這種技術可能無法正常工作。更好的方法是在文本中使用不同的分隔符。
  2. 您還可以使用正則表達式從字符串中提取電子郵件地址。如果說電子郵件地址存在於字符串的開始/中間,而不是在字符串的末尾,則此技術不會受到影響。
0

我不是專家,但這裏是我會怎麼做:

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 

public class GiveEmails { 

    public static void main(String[] args) throws FileNotFoundException { 
     Scanner infile = null; 
     if (args.length == 1) { 
      infile = new Scanner(new File(args[0])); 
     } 

     while (infile != null && infile.hasNext()) { 
      String line = infile.nextLine(); 
      String[] linearray = line.split(" "); 
      System.out.println(linearray[linearray.length-1]); // print the last token 
     }  
    } 
} 

一個文件名作爲第一個參數,然後返回每行的最後一個令牌,使用空格作爲分隔符。

相關問題