刚刚做了一道编程题,我把题目简化如下:
给定一个只包含小写字母和#的字符串,其中#代表退格字符,要求把处理后的字符串输出。例如,输入:ab#c,输出:ac;输入:ab##,输出为空;输入:#a#c,输出:c。
我的程序如下:
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
String s=sc.next();
StringBuffer sb1=new StringBuffer(s);
for(int i=0;i<sb1.length()-1;i++)
{
while(sb1.charAt(0)=='#')
sb1.deleteCharAt(0);
if(sb1.charAt(i)=='#')
{
sb1.delete(i-1,i+1);
i=-1;
}
}
System.out.println(sb1);
}
}
问题在于,我输入ab##,输出却是a#,调试后发现是for循环出问题,判断条件即使为真也退出了循环,应该怎么修改?