gpt4 book ai didi

java - 如何从扫描仪中删除分隔符恢复? ( java )

转载 作者:行者123 更新时间:2023-11-30 05:21:27 25 4
gpt4 key购买 nike

我承认,这不是最好的标题。

我遇到以下问题。我需要使用扫描仪并解析每个单词(不带分隔符)以分隔字符串。

示例:扑克;二十一点;拉斯维加斯、纽约扑克 二十一点 拉斯维加斯 纽约

现在,对于第一部分,我只需使用如下分隔符:sc.useDelimiter("; ") 就可以正常工作。

第二部分是我遇到麻烦的地方。如果我在完成 Blackjack 后切换到 sc.useDelimiter(", "),我仍然会包含第一个 ; 和一个空格,以便字符串输出 ;拉斯维加斯

我尝试通过首先重置分隔符并吃掉第一个标记来解决这个问题,这是一种不好的解决方法,但是字符串仍然会是“whitespace”LasVegas 而不是拉斯维加斯

非常感谢一些帮助。

最佳答案

有多种方法可以解决这个问题,具体取决于您的实际需求1:

  1. 不要更改分隔符。 “Blackjack” 之后的标记将为“LasVegas, NewYork to Poker Blackjack LasVegas NewYork”。创建另一个扫描器来解析该 token 。 (或使用String::split。)
  2. 使用可以匹配任一分隔符的分隔符正则表达式;例如“[;,]\\s*”
  3. 像这样解析:

     String line = scanner.nextLine();
    String[] parts = line.split(";\\s*");
    String[] parts2 = parts[2].split(",\\s*");

    假设 ; 是主要分隔符,, 是辅助分隔符。

  4. 更改输入文件语法,使其仅使用一个分隔符。 (这假设您可以自由地这样做,并且替代语法将“更有意义”。)

<小时/>

1 - 显然,我们无法从单行输入推断出您尝试解析的文件的语法。或者,一般来说,来自单个示例输入文件。

关于java - 如何从扫描仪中删除分隔符恢复? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59524787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com