gpt4 book ai didi

java - 构建模式以从字符串中提取数据

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

我有以下形式的字符串:

"abc" 1 2 1 13 
"efgh" 2 5

基本上,引号中的字符串后跟由空白字符分隔的数字。我需要从该行中提取字符串和数字。

例如,对于第一行,我想要

  • abc 存储在 String 变量中(即没有引号)和
  • 一个 int 数组来存储 [1,2,1,13]

我试图创建一个模式来执行此操作,但我有点困惑。

Pattern P = Pattern.compile("\A\".+\"(\s\d+)+");

现在不确定如何进行。我意识到使用这种模式我会提取整条线?也许多种模式会有所帮助?

Pattern P1 = Pattern.compile("\A\".+\"");
Pattern P2 = Pattern.compile("(\s\d+)+");

同样,不太确定如何从行中获取字符串和整数。感谢您的帮助!

最佳答案

我宁愿只在空间上拆分字符串,而不是构建复杂的正则表达式,并将其与 PatternMatcher 类一起使用。

像这样:-

String str = "\"abc\" 1 2 1 13 ";
String[] arrr = str.split("\\s");
System.out.println(Arrays.toString(arrr));

输出:-

["abc", 1, 2, 1, 13]

更清楚地表明您的意图,即您想做什么。

然后,您可以从字符串数组中获取stringinteger 部分。您需要对整数元素执行 Integer.parseInt()


如果您的字符串中可能包含空格,那么在这种情况下,您将需要一个 Regex。更好的是 @m.buettner 的 answer 中的那个

关于java - 构建模式以从字符串中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13286507/

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