繁体   English   中英

扫描仪的Java java.util.regex.MatchResult计数器问题

Java java.util.regex.MatchResult counter problems with Scanner

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用java.util.Scanner从大字符串扫描所有出现的给定正则表达式。

Scanner sc = new Scanner(body);
sc.useDelimiter("");
String match = "";
while(match!=null)
{
    match = sc.findWithinHorizon(pattern, 0);
    if(match==null)break;
    MatchResult mr = sc.match();
    System.out.println("Match string: "+mr.group());
    System.out.println("Match string using indexes: "+body.substring(mr.start(),mr.end());
}

奇怪的是,经过一定数量的扫描后,group()方法返回正确的结果,而start()和end()方法返回错误的索引,例如扫描从文件开头重新开始。 正则表达式是多行的(我使用此正则表达式来发现行更改“ \\ r \\ n | [\\ n \\ r \\ u2028 \\ u2029 \\ u0085]”)。

你有什么提示吗? 可能与“水平”参数有关(我已经尝试过使用该值的差分组合)吗?

有关更多详细信息,它似乎与文件的大小(超过1000个字符)有关,在大约1000后,计数器从0重新开始(例如,在1003:1020之后出现的第一个错误索引变为3:120)。

1 个回复

Scanner使用带有1024字符的内部缓冲区。 改用Pattern

Matcher matcher = Pattern.compile(...).matcher(body);
while(matcher.find()) {
    int start = matcher.start();
}
1 扫描仪问题

我是Java编程领域的新手,它尝试使用下面的代码通过扫描器类输入值。 问题是扫描仪没有打开控制台供用户输入,并且其显示的平均值默认为零。 调试控制台将引发文件未找到异常错误。 请指教... ...

2 扫描仪问题

我正在编写一个初始化每个员工的值的程序,然后最终将其显示出来。 在第4个循环后,我仍然遇到扫描仪问题,但我关闭了java.lang.IllegalStateException扫描仪错误,任何建议都会有所帮助。 ...

3 扫描仪上的java.util.NoSuchElementException

我有一个名为input的扫描器,其代码如下: 但是,当它到达从扫描仪读取的行时,它将终止,并显示以下错误: (家是班级的名称)。 我不知道是什么原因造成的,不胜感激! :) 谢谢! 编辑:我也尝试使用此代码: String str = input.nextLine(); ...

2015-01-22 19:08:19 1 172   java
5 扫描仪 Java 的问题

我正在编写一个程序,需要收集一组数字并用它做一些事情。 但由于某种原因,扫描仪无法读取所有输入的数字。 怎么了? 输入: 输出: 它缺少最后 8 位数字。 为什么是这样? ...

2014-03-25 05:04:18 2 152   java
6 扫描仪nextLine()问题

我已经从事了一段时间的编程任务,该任务充当Scrabble词典。 该程序从用户处获取输入,并输出包含单词列表的文件,具体取决于用户从菜单中请求的内容。 我一直遇到的问题与Scanner.nextLine()有关。 我不太清楚为什么,但是出于某种原因,有时我必须按一次Enter键,然后我 ...

7 Android NFC扫描仪问题

我正在为我的Android应用程序开发NFC扫描功能。 它适用于我的所有设备,除了运行Android 4.4.2的Samsung S4 。 当我扫描NFC tag ,它会抛出此错误: 显然,它似乎是一个权限错误。 这真的很奇怪,因为它适用于我的LG L65和我的Samsung ...

8 扫描仪:java.util.Scanner.next(未知源)问题

我编写了一个基本的计算器程序,但遇到了以下异常: java.util.InputMismatchException java.util.Scanner.next(未知源) 该代码运行得很好,但是当发生异常时,它不允许用户使用Scanner进行输入。 我在做什么错,我该如何解决 ...

2017-08-31 16:54:26 1 412   java
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM