Java 如何使用BufferedReader';s线分割法?

Java 如何使用BufferedReader';s线分割法?,java,line,bufferedreader,string-split,Java,Line,Bufferedreader,String Split,我想读取一个文本文件,并将一些必需的值存储为java字符串 我使用Bufferedreader读取和存储这些值。我插入了一行,其中包含:可能的值将为 NAME: lastname, firstname *CONTRACTOR* NAME: NAME: Sapi, Raj J. NAME: Alle Peter, Shortley Swara 从上面我只需要姓和名。有时这个值根本不存在。在这种情况下,如何验证名称行是否有值?为此,我使用下面的代码引发Nullpointer异常 BufferedR

我想读取一个文本文件,并将一些必需的值存储为java字符串

我使用Bufferedreader读取和存储这些值。我插入了一行,其中包含:可能的值将为

NAME: lastname, firstname *CONTRACTOR*
NAME:
NAME: Sapi, Raj J.
NAME: Alle Peter, Shortley Swara
从上面我只需要姓和名。有时这个值根本不存在。在这种情况下,如何验证名称行是否有值?为此,我使用下面的代码引发Nullpointer异常

BufferedReader br = new BufferedReader(new InputStreamReader(
            (conn.getInputStream())));
    String line;
    while ((line = br.readLine()) != null) {
        if (line.contains("CNUM")) {
            cnum = line.split(" ")[1];
            // break;
        }
        if (line.contains("NAME")) {
            name = line.split(" ")[2];
        }
    }

你可能想要这样的东西

    BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
    String line;
    while ((line = br.readLine()) != null) {
        if (line.contains("CNUM")) {
            cnum = line.split(" ")[1];
            // break;
        }
        if (line.trim().startsWith("NAME:")) {

            line = line.replace("NAME:", "");
            line = line.trim();
            if (line.contains(",")){
                String[] contractorName = line.split(",");
                String lastName = contractorName[0].trim();
                String firstName = contractorName[1].trim();
                // use the last name and first name as you wish here.
            } else {
                // line doesn't contain a first and last name for contractor.  invalid data.
                continue;
            }
        }
    }

它从哪一行抛出NPE?@Rehman-我在哪里检查行。包含(“名称”)。不可能。再次检查您的行号。并发布完整的堆栈跟踪。
line
不能为null,因为您已经执行了null检查只是猜测:Change
name=line.split(“”[2]
name=line.split(“”[1]非常感谢。。。我会试试的,我不确定。仍然显示ArrayIndexOutOfBounds异常。在此之前,我试着打印出名字和姓氏。它印刷得很好。但在此之后,给出了这个例外。它在哪个数据元素上失败了?您可以单步查看代码并查看它获得ArrayIndexOutOfBounds异常的数据元素是什么吗。