在Java中解析字符串

时间:2013-12-04 04:32:34

标签: java string parsing

我有以下格式的字符串

// 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

我认为它最后包含换行符,我只需要获取那些未启动的行//如何只获取那些行?

2 个答案:

答案 0 :(得分:7)

非常简单,只需将字符串拆分为单独的行(注意:\n是换行符的转义字符),然后只使用每一行(如果它不以//开头

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

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

答案 1 :(得分: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);
        }
    }