关于不断删减字符串的开头和结尾,程序问题不知该改哪里了,希望帮我看看

//题目是:
//有一个字符串,很长,由26个小写字母组成。有一天它在照镜子的时候,觉得自己太肥了,于是它想减肥。
//减肥的时候,可以不断地去掉第一个或者最后一个字符。它希望自己减肥之后,对于小写字母a、b、c,自己身上都至少保留有一个。
//它想知道自己减肥后的样子,你能帮帮它吗?(打印减肥后的字符串)
import java.util.*;
public class Jf{
    public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
        System.out.println("请输入字符串");
        String str=sc.nextLine();
        String son1="a";
        String son2="b";
        String son3="c";
        int a=0;
        int b=str.length()-1;
        System.out.println("字串"+count1Str(str,son1)+count2Str(str,son2)+count3Str(str,son3));
        while(count1>1&&count2>1&&count3>1){
            str.delete(a,b);
            a++;b--;
            a=a;b=b;
        }
        System.out.println(str.substring( a, b+1));
    }
        public static int count1Str(String str, String son1){
        int count1 = 0;
        int n1 = 0;
        while(str.indexOf(son1,n1)!=-1){
            count1++;
            n1 = str.indexOf(son1,n1)+son1.length();
        }
        return count1;
        }
        public static int count2Str(String str, String son2){
        int count2 = 0;
        int n2 = 0;
        while(str.indexOf(son2,n2)!=-1){
            count2++;
            n2 = str.indexOf(son2,n2)+son2.length();
        }
        return count2;
        }
        public static int count3Str(String str, String son3){
        int count3 = 0;
        int n3= 0;
        while(str.indexOf(son3,n3)!=-1){
            count3++;
            n3 = str.indexOf(son3,n3)+son3.length();
        }
        return count3;
        }
        
        
}//Jf.java:13: 错误: 找不到符号
                while(count1>1&&count2>1&&count3>1){
                      ^
  符号:   变量 count1
  位置: 类 Jf
Jf.java:13: 错误: 找不到符号
                while(count1>1&&count2>1&&count3>1){
                                ^
  符号:   变量 count2
  位置: 类 Jf
Jf.java:13: 错误: 找不到符号
                while(count1>1&&count2>1&&count3>1){
                                          ^
  符号:   变量 count3
  位置: 类 Jf
Jf.java:14: 错误: 找不到符号
                        str.delete(a,b);
                           ^
  符号:   方法 delete(int,int)
  位置: 类型为String的变量 str
4 个错误