西西河

主题:【求助】问个弱智Java问题 -- cartman

共:💬8 🌺2 新:
全看分页树展 · 主题 跟帖
家园 补充及修正。。汗。。。

经过尝试,发现hasNext()或者hasNextLine(0或者hasNext(pattern)等不能在next()前连用。否则会导致Scanner无限读取。。。while循环无法停止。。。

突然想起来,next()是取出,凡是带has的都不取出。我的循环里面如果has...为否,就直接进行下一次认证了。所以才导致无限循环的。

如果无论是否与reg exp匹配都取出字串,就正常了。

另一个版本:

try

{

File file = new File(fileName);

Scanner scanner = new Scanner(file);

// String tmp;

scanner.useDelimiter("[\\p{javaWhitespace}&&[^ ]]+");

while (scanner.hasNext())

{

// tmp = scanner.next();

// if (tmp.matches("(?=^\\+)..*"))

// {

// System.out.println(tmp);

// }

if (scanner.hasNext("(?>-)..*"))

{

System.out.println(scanner.next());

}

else

{

System.out.println("Reg Exp Not Foundin seq: " + scanner.next());

}

}

scanner.close();

}

catch (FileNotFoundException e)

{

e.printStackTrace();

}

全看分页树展 · 主题 跟帖
  • 相关回复 上下关系7
      • 🙂请进 nbxx 字382 2008-02-18 11:45:02

        • 🙂谢谢 cartman 字74 2008-02-18 18:37:09

          • 🙂再请进 nbxx 字744 2008-02-19 06:33:10

            • 🙂补充及修正。。汗。。。 O

      • 🙂pattern不对 1 283号出口 字0 2008-02-16 01:36:35

        • 🙂不行 cartman 字98 2008-02-16 01:57:52



有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河