这里飘红报错错在哪?如何改?

img


package Practice;

/**

  • 写一个和 trim 功能相同的方法
  • 1.定义两个变量,用来存储两个角标
  • 2.分别从头和尾遍历字符串,直到找到第一个不为空格的字符
  • 3.截取字符串
  • /
    public class Main {
    public static void main(String[] args) {
      String s=Trim(" abc ");
      System.out.println(s);
    
    }
    public static String Trim(String str){
      int index1=0;
      int index2=str.length()-1;
      for(int i=0;i<str.length();i++){
          if (str.charAt(i)!=" "){
              index1=i;
              break;
          }
      }
      for (int i=str.length()-1;i>0;i--){
          if (str.charAt(i)!=" "){
              index2=i;
              break;
          }
      }
      return str.substring(index1,index2+1);
    
    }
    }

str.charAt(i)
结果是字符,不能与字符串比较。


public class Main {
public static void main(String[] args) {
  String s=Trim(" abc ");
  System.out.println(s);
}
public static String Trim(String str){
  int index1=0;
  int index2=str.length()-1;
  for(int i=0;i<str.length();i++){
      if (str.charAt(i)!=' '){
          index1=i;
          break;
      }
  }
  for (int i=str.length()-1;i>0;i--){
      if (str.charAt(i)!=' '){
          index2=i;
          break;
      }
  }
  return str.substring(index1,index2+1);
}
}

str.charAt(i)返回char,所以只能使用单引号进行比较。进行如下修改即可:

    public static String Trim(String str){
        int index1=0;
        int index2=str.length()-1;
        for(int i=0;i<str.length();i++){
            if (str.charAt(i) != ' '){
                index1=i;
                break;
            }
        }
        for (int i=str.length()-1;i>0;i--){
            if (str.charAt(i)!= ' '){
                index2=i;
                break;
            }
        }
        return str.substring(index1,index2+1);
    }