2017-10-11 101 views
-1

时指数走出束缚我有我的txt文件里的数据sotre的列表,它会像下面

阵列劈裂字符串

"[email protected]","10.9.2.34" 
"[email protected]","10.9.2.34" 
"[email protected]","10.9.2.34" 
"[email protected]","10.9.2.34" 
"[email protected]","10.9.2.34" 
"[email protected]","10.9.2.34" 

我会阅读所有的输入我的txt文件中,并存储成DailyFileData。在那之后,我想从数据中提取出IP addressgmail.com,但是我无法做到这一点。mail1变量将存储"[email protected]","10.9.2.34"从txt文件我已经搜索多个解决方案,以便如何在stackoverflow和其他网站中指定两个分隔符。但我正在逐渐出现在下面的代码行

String IP1 = Emaildata1[1]; 



这里ArrayIndexOutOfboundException .The错误是我的源代码

for(int c = DailyFileData.size()-1;c>=0;c--) 
     { 
     String mail1 = DailyFileData.get(c); 
     MailCount1 = Collections.frequency(DailyFileData,mail1); 
     System.out.println("Count of mail is :"+MailCount1); 
     String filename1 = f.getCanonicalPath(); 
     Pattern pattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}"); 
     Matcher match = pattern.matcher((CharSequence) filename1); 
     while (match.find()) 
     { 
      date1 = match.group(0); 
     } 
     String [] Emaildata1 = mail1.split(CSVSplitBy); 
     System.out.println(Emaildata1); 
     String domain1 = Emaildata1 [0]; 
     String IP1 = Emaildata1[1]; 
     String [] domainArray1 = domain1.split(emailSplitBy); 
     String domain2 = domainArray1[0]; 

     System.out.println("The extracted domain is :"+domain2); 
     System.out.println("The extracted date is :"+date1); 
     System.out.println("The extracted IP is :"+IP1); 
     domainAndCounting1.add(domain1); 
     domainAndCounting1.add(String.valueOf(MailCount1)); 
      Iterator<String> it = DailyFileData.iterator(); 
        while(it.hasNext()) 
          { 
          String mail2 = it.next(); 
          if(mail2.equals(mail1)) 
           { 
           it.remove(); 
           c--; 
           } 
          } 
      } 
+1

'mail1'的值是多少? –

+0

mail1是存储ip地址和电子邮件ID的变量 – Lokesh

+0

是的,mail1将存储IP和电子邮件地址,我已附上我的完整代码 – yumi

回答

1

我不明白你想达到什么样的在你的代码中。但如果你有String喜欢"[email protected]","10.9.2.34"和你正在试图提取IP address和域名只有gmail.com,你可以简单地尝试以下方法,而不去模式匹配的任何并发症:

String a = "\"[email protected]\",\"10.9.2.34\""; 
     String arr[] = a.split(","); 
     System.out.println(Arrays.toString(arr)); 

     for (String aa : arr) { 
      if (aa.contains("@")) { 
       System.out.println(aa.substring(aa.indexOf("@") + 1, aa.length() - 1)); 
      } else { 
       System.out.println(aa.substring(1, aa.length() - 1)); 
      } 
     } 

N.B:这不是最好的解决办法。这只是解决你的小问题。希望这可以帮助。

+0

谢谢,我解决了我的问题,这是由于我在代码中犯了一些粗心的错误 – yumi