gpt4 book ai didi

java - 将字符串除以空格,除非满足特定字符

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:37 26 4
gpt4 key购买 nike

我有一个程序,它接受一个字符串并将其存储在一个字符串数组中。在执行此操作之前,它将字符串按空格分隔并将每个空格存储到数组的索引中。

但是,如果存在字符(例如引号),我希望字符串不以空格分隔。只要字符串位于引号内,它就应该将整个子字符串存储在数组中自己的字符串中,即使它内部有空格。为了更清楚地说明,这是它解析的命令:

AddGame 1001 "Mirror's Edge"

其中第一部分是用作我拥有的 switch case 语句的开关的命令。第二个是游戏ID,第三个是游戏名称。到目前为止,当我制作游戏类并将其打印出来时,它返回:

(1001, "Mirror's)

虽然应该是:

(1001, Mirror's Edge)

如果可能的话,我真的不想使用正则表达式。谁能指出我正确的方向?

最佳答案

“简单”的方法:

String[] array = str.split("\"?, *\"?(?=(([^\"]*\"){2})*[^\"]*$");

“困难”方式(伪代码):

  • 按照输入的字符逐个字符进行操作
  • 计算遇到的引号数量
  • 如果数字是奇数,请勿将逗号视为断点
  • 为了收集零件而忽略报价
  • 忽略逗号后的任意数量的空格

正则表达式版本可以做到这一切。

尽管正则表达式看起来“很难”,但手动实现此操作所花费的时间和调试量使得非正则表达式方式“很难”。

关于java - 将字符串除以空格,除非满足特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34981332/

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