java如何在两个字符串或两个字符之间获取多个字符串
我将此文本标记如下:
∅habbaz∅abdelkrim∅habbaz∅abdelkrim∅habbaz∅abdelkrim
我想得到字符∅
之间的每个字符串。我尝试了以下方法:
ArrayList<String> ta = new ArrayList();
String test=t2.getText();
String str = test;
Pattern pattern = Pattern.compile("∅(.*?)∅");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
ta.add(matcher.group(1));
}
t3.setText(ta.toString());
它应该给我:
[habbaz,abdelkrim, habbaz,abdelkrim, habbaz,abdelkrim]
但它只给了我:
[habbaz, habbaz, habbaz]
# 1 楼答案
使用
split
:这将生成分隔符之间的字符串数组。请注意,数组中的第一个字符串将是
""
,即空字符串,因为您的输入字符串以分隔符∅
开头。要避免这种情况,请在拆分(if (input.startsWith("∅")) {input = input.substring(1);}
)之前获取输入的子字符串,或处理生成的标记以排除任何空字符串要将令牌转换为
ArrayList
,请使用以下命令:或者你可以写:
# 2 楼答案
如果要使用正则表达式解决方案,请尝试以下方法:
此图案将与a匹配∅ 后跟任意数量的非-∅, 这应该会起作用