黑马程序员技术交流社区

标题: 总是出现Incompatible operand types char and String的错 [打印本页]

作者: pifuhanshu    时间: 2014-3-16 22:43
标题: 总是出现Incompatible operand types char and String的错
本帖最后由 pifuhanshu 于 2014-3-21 18:30 编辑
  1. /**自定义一个方法返回一个数组中前后空格
  2. * @author admin
  3. *思路:
  4. *                         1.定义2个变量start、end分别表示开始和结束位置的字符位数
  5. *         2.然后分别对开始结束位置是否是空格进行判断
  6. *                                 如果开始的位置是空格,start++
  7. *                 如果结束的位置是空格,end--
  8. *                 直至找到不是空格的位置,然后调用subString()返回所要截取的
  9. *                 字符串。
  10. */
  11. public class StringTest4 {

  12.         /**
  13.          * @param args
  14.          */
  15.         public static void main(String[] args) {
  16.                 String    str="   ad fdsaa   ";
  17.                 String                sub=myStrim(str);
  18.                 System.out.println("sub="+"-"+sub+"-");
  19.         }
  20. /**
  21. * 自定义一个myStrim()方法返回去除空格的字符串
  22. * @param str1
  23. * @return
  24. */
  25.         public static String myStrim(String str1) {
  26.                 //定义变量分别表示String类字符串的开始处和结尾处
  27.                 int  start=0, end=str1.length()-1;
  28.                 //如果开始处为空格,开始处的指针自加一
  29.                 while (start<=end&& str1.charAt(start) == " "){
  30.                         start++;
  31.                 }
  32.                 //如果结尾处为空格,结尾处的指针自减一
  33.                 while (start<=end&& str1.charAt(end) ==" "){
  34.                         end--;
  35.                 }
  36.                 //通过调用substring()返回开始和结尾处的字符串
  37.                 String  sub=str1.substring(start, end+1);
  38.                 return  sub;
  39.         }

  40. }
复制代码



作者: 水蓝    时间: 2014-3-16 22:50
String方法charAt()返回的是字符,而不是字符串,应该用单引号,而不是双引号。
  1. /**
  2. * 自定义一个myStrim()方法返回去除空格的字符串
  3. * @param str1
  4. * @return
  5. */
  6.         public static String myStrim(String str1) {
  7.                 //定义变量分别表示String类字符串的开始处和结尾处
  8.                 int  start=0, end=str1.length()-1;
  9.                 //如果开始处为空格,开始处的指针自加一
  10.                 while (start<=end&& str1.charAt(start) == ' '){   //<----这边应该是单引号
  11.                         start++;
  12.                 }
  13.                 //如果结尾处为空格,结尾处的指针自减一
  14.                 while (start<=end&& str1.charAt(end) ==' '){   //<-----这边也应该是单引号
  15.                         end--;
  16.                 }
  17.                 //通过调用substring()返回开始和结尾处的字符串
  18.                 String  sub=str1.substring(start, end+1);
  19.                 return  sub;
  20.         }
复制代码

作者: 刘凯旋    时间: 2014-3-17 13:41
while (start<=end&& str1.charAt(start) == " ") charAt()方法得到的是字符不是字符串,字符与字符串所用的引号是不同的
作者: 蒙奇.D.路飞    时间: 2014-5-16 21:02
额 我也犯了这个错误 看来要注意细节啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2