2013-12-04 7 views
2

У меня есть строка в формате нижепарсинг строки в Java

// JCSDL_MASTER b04591342ee71a2baa468d9d2a340ec8 AND 
// JCSDL_VERSION 1.0 
// JCSDL_START 0980a5f2ef935c4ed153bf975879eac0 twitter.text,contains_any,27-52 
twitter.text contains_any "obama, santorum, gingrich, romney, ronpaul, ron paul" 
// JCSDL_END 
AND 
// JCSDL_START f7c18a6fedd90c6b4d77acc14a3a8e5c interaction.type,in,21-29 
interaction.type in "twitter,facebook,digg,youtube" 
// JCSDL_END 
// JCSDL_MASTER_END 

Я полагаю, что включает в себя символ новой строки в конце концов, мне нужно просто получить только те строки, которая не запускаются с помощью // как получить только те линии?

+0

Loop корыта файл построчно, работать только с теми, которые не начинаются с «//». –

+0

Это не в файле, это простая строковая переменная – Moosa

+0

Я вижу. Ну это только вывод: я предполагаю, что ваша строка содержит символы '\ n' внутри? Разделите строку на этом символе, а затем проверьте, начинается ли она с '//'. –

ответ

7

Довольно просто, просто разделить строку на отдельные строки (примечание: \n является маскирующим для разрыв строки), а затем использовать только каждую строку, если она не начинается с //

String[] lines = string.split("\\n"); 

for (String line : lines) 
{ 
    if (!line.startsWith("//")) 
    { 
    //use the line and do your thing 
    } 
} 
0

Используйте Scanner.nextLine() читать каждую строку, а затем игнорировать те, которые запускаются с // как следующее:

String str = "hi \n//this is kuleep\nthis is a test class"; 
    Scanner sc = new Scanner(str); 
    while (sc.hasNextLine()) { 
     String line = sc.nextLine(); 
     if(!line.startsWith("//")) 
     { 
      System.out.println(line); 
     } 
    } 
+1

придет, как насчет правильного кода –

+0

Извините, мой плохой, я спешил написать ответ. Вот правильный код. –

+0

Может ли DOWNVOTER объяснить, что не так с этим кодом. Теперь я добавил полный код и протестировал его. –

Смежные вопросы