话不多说直接上代码
public static void main(String[] args) {
String name = "v==0?'信息':v==10000?'名字':v>10?'年龄':'信息':'$$$'";
List<Integer> list = new ArrayList<>();
for(int i = 0; i < name.length(); i++) {
String str = name.substring(i, i + 1);
if ("\'".equals(str)) {
list.add(i);//list记录单引号索引
}
}
int before = 0;//前一个单引号索引
int rear = 0;//后一个单引号索引
for (int i = 0; i < list.size(); i++) {//循环取出list的索引
//判断如果list索引是奇数就是前一个单引号位置,如果list索引是偶数就是后一个单引号位置
if ((i & 1) != 0) { //奇数
rear=list.get(i);//记录后一个单引号位置
System.out.println(name.substring(before+1, rear));
before=0;
rear=0;
}
before=list.get(i);//记录前一个单引号位置
}
}
输出结果:
信息
名字
年龄
信息
$$$
Process finished with exit code 0
只是简单测试代码,用正则表达式更加方便
public static void main(String[] args) {
String name = "v==0?'信息':v==10000?'名字':v>10?'年龄':'信息':'$$$'";
Pattern pattern= Pattern.compile("'(.*?)'");
Matcher m = pattern.matcher(str);
ArrayList<String> list = new ArrayList<String>();
while (m.find()) {
list.add(m.group().trim().replace("'","")+" ");
}
for (String s : list) {
System.out.println(s);
}
}
输出结果:
信息
名字
年龄
信息
$$$