gpt4 book ai didi

java - 正则表达式字边界

转载 作者:行者123 更新时间:2023-11-30 05:52:07 24 4
gpt4 key购买 nike

我正在按单词边界拆分字符串。

我期待的是:

 TOKEN 0  
TOKEN 1 0
TOKEN 2
TOKEN 3 +Ve

而且,我得到的是,

 TOKEN 0  
TOKEN 1 0
TOKEN 2 +
TOKEN 3 Ve



public void StringExample(){
String str = " 0 +Ve";

String[] token = str.split("\\b");

System.out.println("TOKEN 0 " + token[0]);
System.out.println("TOKEN 1 " + token[1]);
System.out.println("TOKEN 2 " + token[2]);
System.out.println("TOKEN 3 " + token[3]);
}

有人可以提供线索哪里出了问题吗?以及可能的更正,

最佳答案

@pb2q 和@Hovercraft 都已经解释了为什么单词边界在您的情况下不起作用。另一种方法是使用 Pattern 并捕获每个组,这将为您提供所需的内容:

String str = " 0 +Ve";
Pattern p = Pattern.compile("( |[^ ]+)");
Matcher m = p.matcher(str);
List<String> tokens = new ArrayList<String>();
while (m.find()) {
tokens.add(m.group(1));
}
System.out.println("TOKEN 0 " + tokens.get(0));
System.out.println("TOKEN 1 " + tokens.get(1));
System.out.println("TOKEN 2 " + tokens.get(2));
System.out.println("TOKEN 3 " + tokens.get(3));

关于java - 正则表达式字边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12046394/

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