Я знаю путь, чтобы прочитать следующие и предыдущие строки во время чтения файла построчно, какПри чтении следующие и предыдущие строки в файле я получаю исключение разыменования нулевой
String prev = null;
String curr = null;
String next = null;
Scanner sc = new Scanner(new File("thefile.txt"));
while(sc.hasNextLine()) {
prev = curr;
curr = next;
next = sc.nextLine();
Но во время первой Итерация Я получаю исключение нулевого указателя, поскольку мне приходится работать с текущим элементом.
Какое обходное решение для этого?
Scanner sc = new Scanner(file);
String curr = null ;
String next = null ;
while (sc.hasNextLine()) {
curr = next;
next = sc.nextLine();
if(curr.length() > 0 && !curr.equals(". O O")) {
lines+= curr.substring(0, curr.indexOf(" ")) + " ";
for(String pat : patStrings)
{
// System.out.println(pat) ;
Pattern minExp = Pattern.compile (pat);
Matcher minM = minExp.matcher(curr);
while(minM.find())
{
String nerType = minM.group(2);
if(nerType.contains("B-NE_ORG")){
if (next.contains("I-NE_ORG"))
orgName+= minM.group(1)+" ";
В начале, curr и next являются «нулевыми». На первой итерации вы назначаете «curr = next», поэтому значение по-прежнему остается «null». Затем «curr.length()» выдает исключение nullpointer ... –
http://stackoverflow.com/questions/3983175/1-scanning-current-as-opposed-to-next-line-location-2- scan-line-x-java – lavina