gpt4 book ai didi

java - 分割空格分隔的字符串,忽略单引号内的空格

转载 作者:行者123 更新时间:2023-12-02 06:29:00 26 4
gpt4 key购买 nike

我的 Java 输入 String str = "aa 2 xx 'b cc dd e' -o se '4-5'"

我想输出由空格分隔的标记,但单引号内的空格除外。所以,输出应该是:

aa
2
xx
'b cc dd e'
-o
se
'4-5'

我可以通过在空格上分割字符串,然后合并一系列字符串(如“b、cc、dd、e”)来返回“b cc dd e”,但我想要一种更好的方法,可能使用一些正则表达式。

最佳答案

我认为你可以通过迭代字符串并使用 boolean 值来检测引号来做到这一点。

尝试使用这个:

  public List<String> test(String a){
final List<String> list = new ArrayList<>();
boolean quotes = false;
StringBuilder sb = new StringBuilder();
for(char c: a.toCharArray()){
if(quotes){
if('\'' == c) {
quotes = false;
if(!sb.toString().isEmpty()) {
list.add(sb.toString());
}
sb = new StringBuilder();
} else {
sb.append(c);
}
}else {
if (' ' == c) {
if (!sb.toString().isEmpty()) {
list.add(sb.toString());
sb = new StringBuilder();
}
} else if ('\'' == c) {
quotes = true;//entra na string do quote

} else{
sb.append(c);
}
}
}

if(!sb.toString().isEmpty()){
list.add(sb.toString());
}
return list;
}

关于java - 分割空格分隔的字符串,忽略单引号内的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55769384/

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