黑马程序员技术交流社区

标题: 代码运行没有预期结果 [打印本页]

作者: 王延龙    时间: 2013-7-19 04:06
标题: 代码运行没有预期结果
  1. public class Show{

  2.         public static void main(String[] args){
  3.        
  4.                 String s = "     a  c d  ";

  5.                 //        System.out.println(s.trim());

  6.                 s = myTrim(s);

  7.                 System.out.println("-"+s+"-");
  8.         }

  9.         public static String myTrim(String s){
  10.        
  11.                 int start = 0;

  12.                 int end = s.length()-1;

  13.                 while(start <= end && s.charAt(start) == " "){
  14.                
  15.                         start++;
  16.                 }

  17.                 while(end >= 0 && s.charAt(start) == " "){
  18.                
  19.                         end--;
  20.                 }

  21.                 return s.substring(start,end+1);
  22.         }
  23. }

  24. //很困了,检查了多遍没有发现错在哪? 揪心啊,抓狂了,喵了个咪的
复制代码

作者: dunwu    时间: 2013-7-19 06:26
  1. public class Show{

  2.     public static void main(String[] args){
  3.    
  4.             String s = "     a  c d  ";

  5.             //        System.out.println(s.trim());

  6.             s = myTrim(s);

  7.             System.out.println("-"+s+"-");
  8.     }

  9.     public static String myTrim(String s){
  10.    
  11.             int start = 0;

  12.             int end = s.length()-1;

  13.             while(start <= end && s.charAt(start) == ' ')//s.charAt()换回值类型是char类型 ,应该为' '
  14.             {
  15.             
  16.                     start++;
  17.             }

  18.             while(end >= 0 && s.charAt(end) == ' ')//start应改为end
  19.             {
  20.             
  21.                     end--;
  22.             }

  23.             return s.substring(start,end+1);
  24.     }
  25. }
复制代码

作者: 张云杰    时间: 2013-7-19 06:47
尽管不知道LZ是怎么想的,,不过LZ还是看一下我的吧


public class NumTest {
public static void main(String[] args) {
  String s = "     a  c d  ";
  // System.out.println(s.trim());
  s = myTrim(s);
  System.out.println(s);
}
public static String myTrim(String s) {
  StringBuilder sb = new StringBuilder();
  String str = null;
  for (int i = 0; i < s.length(); i++) {
   str = s.substring(i,i+1);
   if (!str.equals(" ")) {
    sb.append(str);
   }
  }
  return sb.toString();
}
}


我也困了.. 准备睡觉..

作者: yangqing    时间: 2013-7-19 10:42
把  while(end >= 0 && s.charAt(start) == " ")中的 start 改成 end 就可以了  end这个循环是应该从后面开始不是前面开始,

我刚开始时也是复制过去 忘记改了  后面检测了许久也没看出来     当结果出来的时候不是理想中的时候  其实检查的时候不需要去看那些语法什么的 只要瞅着这个方法的几个关键的点看就行了  省去不少时间。

希望帮到了你





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