gpt4 book ai didi

java - 如何正确分割这个字符串?

转载 作者:行者123 更新时间:2023-12-01 12:09:48 25 4
gpt4 key购买 nike

我希望分割用户输入的字符串,该字符串必须以以下格式呈现:

integer*integer

如果我使用.split("\\*")使用星号作为分隔符创建数组的方法,它工作得很好,我最终得到了一个包含两个元素的数组,这就是我正在寻找的。

但是,如果用户输入类似的内容(注意空格):

integer *integer 
or
integer * integer
or
integer* integer

更准确地说,这是似乎不起作用的确切片段:

String formatChecker = input.next();
System.out.println("LENGTH:" + formatChecker.split("\\*").length);

和一个例子

1*1
LENGTH:2

1 * 1
LENGTH:1

.split("\\*)只产生一个只有一个元素的数组,我不知道为什么。仅当分隔符位于空格旁边时才会出现问题,但据我了解,它仍然应该提供两个元素数组,唯一的区别是字符串中会有空格,但可以使用 .trim 轻松清理()。

任何关于使用 .split() 从该字符串获取两个元素数组的万无一失的方法的帮助将不胜感激。谢谢!

最佳答案

假设输入是一个扫描仪Scanner#next()此处使用

String formatChecker = input.next();
默认情况下,

对空格进行标记(实际上是在分隔符模式上)。换句话说,如果您输入

1 * 1

然后按回车键,只会返回

1

所以这不是 String#split(String) 被破坏了,而是你的输入读取策略被破坏了。也许可以考虑使用 Scanner#nextLine() 读取所有内容,直到出现新行字符。

关于java - 如何正确分割这个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27334176/

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