gpt4 book ai didi

java - 从字符串中提取一些字符串的更好方法

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

是否有更好的方法从字符串中提取子字符串?

我想提取字符串中用“和”包围的字符。我用过substring()indexOf()方法,但我确信有更好的方法。

例如,对于此输入:

I "learn" java "and" python.

期望的输出是:

learn

and

这是我尝试过的:

public static void main(String[] args) {
Scanner putIn = new Scanner(System.in);
String input = putIn.nextLine();
String subInput = input.substring(input.indexOf("\"") + 1);
System.out.println(subInput);
String strOne= subInput.substring(0, subInput.indexOf("\""));
System.out.println(strOne);
String strTwo = subInput.substring(strOne.length() + 4, subInput.length() - 2);
System.out.println(strTwo);
}

最佳答案

PatternMatcher类(class)似乎适合您的需求:

Pattern pattern = Pattern.compile("\"([a-zA-Z]*)\"");
Matcher matcher = pattern.matcher(input);

while(matcher.find()) {
System.out.println(matcher.group(1));
}

进一步说明:

  • Pattern pattern = Pattern.compile("\"([a-zA-Z]*)\""); -> 创建 Pattern匹配引号字符之间的字母
  • Matcher matcher = pattern.matcher(input); -> 创建 Matcher链接 Pattern以及用户输入。
  • while(matcher.find())虽然有匹配...当然你可以将匹配的字符串添加到数组中,这里我只是打印它们。

关于java - 从字符串中提取一些字符串的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56370074/

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