如给定一字符串“ascadbcadcbdac” 将c 与ab剔除
代码如下
public static String handlerStr(String str) {
char[] cs = new char[str.length()];
char[] chs = str.toCharArray();
int index =-1;
for(int i=0;i<chs.length;i++) {
if(chs[i] == 'c') {
continue;
}if(chs[i] == 'b' && index>-1 && cs[index] =='a') {
index--;//如果b前面有a则删除前面储存的a并且b不存入
continue;
}
index++;
cs[index] = chs[i];
}
return new String(cs,0,index+1);//将cs数组从0项开始的index+1项转化为字符串
}
public static void main(String[] args) {
String str = "ascadbcadcbdac";
System.out.println(cd4.handlerStr(str));
}
}
思路:因为原字符串中可能会有acb存在 若直接排除c ab 会漏掉 所以应在剔除c的同时判断每个字符b前面是否存在a