【问题标题】:Is there a way in Java to find out what String a Scanner skipped over?Java中有没有办法找出扫描仪跳过的字符串?
【发布时间】:2012-03-15 22:34:06
【问题描述】:

Scanner 类提供了一种方便的方法来跳过空格并获取完整的字符串标记。但是,我遇到了以下情况-

我输入如下-

   Public Type XYZ
       A(3) As Byte
       B(0) As Byte
       C(0) As Byte
   End Type

我正在使用扫描仪来扫描这样的输入。扫描仪正确返回“公共”、“类型”、“XYZ”等标记。但是,有没有办法找出被跳过的内容?例如,在 XYZ 之后,扫描仪实际上会跳过“\n”而不是空格 -“”。如何找出扫描仪跳过的内容?

【问题讨论】:

  • 据我所知,我认为这是不可能的,因为它对待所有空白都是一样的。也许您需要使用某种更强大的解析器来执行此操作。 ?也许是?我不知道,因为这超出了我的舒适区。
  • \n 空格。这里没有“替代”:)
  • 话虽如此...如果这不是您想要的,您可以使用useDelimiter() 方法更改分隔符,并且只让它跳过空格。

标签: java java.util.scanner


【解决方案1】:

这是不可能的,因为 Scanner 类返回没有尾随分隔符的标记。在这种情况下,没有尾随空格字符。我不相信有办法找回它。

一种解决方案是使用BufferedReaderFileReader 类逐行解析文件。这样您就可以完全访问单独的角色。

【讨论】:

  • 嗯。我希望他们在 Scanner 类中具有该功能。
猜你喜欢
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 2011-08-23
相关资源
最近更新 更多