我得到一个值为字符串格式的字符串列表,如下所示:“[”a“,”b“]”。我想将它们转换为字符串列表。我可以通过剥离前导和尾随大括号然后拆分逗号来完成此操作。但问题是我可能会收到与单个字符串相同的值也是“a”,我也希望将其转换为字符串列表。那么有什么方法可以概括这一点。
答案 0 :(得分:0)
一种可能的解决方案是使用Regex
。
您的表达式如下所示:"(.+?)"
.+?
匹配任何字符(行终止符除外)
+?
量词 - 一个和无限之间的匹配次数,尽可能少,根据需要进行扩展。
String tokens = "[\"a\", \"b,c\", \"test\"]";
String pattern = "\"(.+?)\"";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(tokens);
List<String> tokenList = new ArrayList<String>();
while (m.find()) {
tokenList.add(m.group());
}
System.out.println(tokenList);
答案 1 :(得分:0)
您可以概括以下内容:
library(dplyr)
library(stringr)
# get the variable names and form a text equation
col_eqn <- paste0(str_subset(colnames(mtcars), "[a-z]", collapse = " + ")
# run a normal mutate function parsing and evaluating the equation
mtcars %>% mutate(new_col = eval(parse(text = col_eqn)))
# mpg cyl disp hp drat wt qsec vs am gear carb new_col
# 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 328.980
# 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 329.795
# 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 259.580
# 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 426.135
# 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 590.310
# 6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 385.540
# 7 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 656.920
# 8 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 270.980
# 9 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 299.570
# 10 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 350.460
我的输出
[a,b]