2015-08-27 3 views
-5

У меня есть этот файл журнал образец здесь:Как добавить разделители между строками в Java?

LOG FILE: 
Jan 1 22:54:17 drop %LOGSOURCE% >eth1 rule: 7; rule_uid: {C1336766-9489-4049-9817-50584D83A245}; 
Jan 1 22:54:22 drop %LOGSOURCE% >eth1 rule: 7; rule_uid: {C1336766-9489-4049-9817-50584D83A245}; 
Jan 1 22:54:23 drop %LOGSOURCE% >eth1 rule: 7; rule_uid: {C1336766-9489-4049-9817-50584D83A245}; 
Jan 1 22:54:41 drop %LOGSOURCE% >eth1 rule: 7; rule_uid: {C1336766-9489-4049-9817-50584D83A245}; 

Разделитель по умолчанию является точка с запятой (;), и я хочу, чтобы отделить метку времени и «падение», а также «падение» с «% LOGSOURCE% "с этим разделителем. Я побежал код (см ниже, он успешен, но я не получил мой ожидаемый результат весь этот код, чтобы вставить разделитель.).

Мой код: общественный класс LogParser {

List<String> temps = new ArrayList<String>(); 

    // while loop 
    while (inFile1.hasNext()) { 
     // find next line 
     String token1 = inFile1.next(); 
     temps.add(token1); 
    } 
    inFile1.close(); 

    String[] tempsArray = temps.toArray(new String[0]); 

    for (String s : tempsArray) { 
     Pattern p = Pattern.compile("([a-zA-Z]{3}\\s\\d{1,2}\\s\\d{2}:\\d{2}:\\d{2})(\\s)(drop)"); 
     Matcher matcher = p.matcher(s); 
     while (matcher.find()) { 
      //System.out.println(matcher.group(0)); 
     } 
     //System.out.println(s); 
    } 
+0

Google: разбиваться с разделителем в java' –

+0

Что вы пробовали до сих пор, и какие проблемы вы получили, чтобы он работал? С другой стороны, глядя на ваше имя пользователя, возможно, это неправильный вопрос, чтобы спросить вас – ajb

ответ

2

Если вы хотел бы использовать регулярное выражение, вы можете использовать:

([a-zA-Z]{3}\\s\\d{1,2}\\s\\d{2}:\\d{2}:\\d{2})(\s)(drop) 

, как регулярное выражение replaceAll и замена будет $1; $3.

Если не запущены регулярных выражений в Java и не нужно, чтобы избежать \, попробуйте:

([a-zA-Z]{3}\s\d{1,2}\s\d{2}:\d{2}:\d{2})(\s)(drop) 

Производительность:

LOG FILE: 
Jan 1 22:54:17; drop %LOGSOURCE% >eth1 rule: 7; rule_uid: {C1336766-9489-4049-9817-50584D83A245}; 
Jan 1 22:54:22; drop %LOGSOURCE% >eth1 rule: 7; rule_uid: {C1336766-9489-4049-9817-50584D83A245}; 
Jan 1 22:54:23; drop %LOGSOURCE% >eth1 rule: 7; rule_uid: {C1336766-9489-4049-9817-50584D83A245}; 
Jan 1 22:54:41; drop %LOGSOURCE% >eth1 rule: 7; rule_uid: {C1336766-9489-4049-9817-50584D83A245}; 
Смежные вопросы