A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. //需求,模拟trim功能
  2. //myTrim

  3. class StringExercise_myTrim {
  4.         public static void print(Object obj){
  5.         System.out.println(obj);
  6.         }
  7.         //自己想的方法,效率较低,运行时会创建多个字符串对象。
  8.         public static String myTrim(String s){
  9.                 boolean b = false;
  10.                 String s1 = s;
  11.                 while (true) {
  12.                         if (s1.startsWith(" ")) {
  13.                                 s1 = s1.substring(1);
  14.                         }else if (s1.endsWith(" ")) {
  15.                                 s1 = s1.substring(0,s1.length()-1);
  16.                         }else return s1;
  17.                 }
  18.         }
  19.         //毕姥爷的方法
  20.         public static String BTrim(String s){
  21.                 int begin = 0,end = s.length()-1;
  22.                 while (begin <= end && s.charAt(begin)==' ') {        [b]//这里为什么是<= ,为什么不会越界。[/b]
  23.                         begin++;                                                                        //而如果改成<,当字符串为一串空格时,会留下一个空格。
  24.                 }
  25.                 while (begin <= end && s.charAt(end)==' ') {
  26.                         end--;
  27.                 }
  28.                 return s.substring(begin,++end);
  29.         }
  30.         //主方法在这。
  31.         public static void main(String[] args){
  32.                 String s = "  啊  ";
  33.                 print("&"+s+"&");//原先字符串
  34.                 print("&"+myTrim(s)+"&");//
  35.                 print("&"+BTrim(s)+"&");
  36.         }
  37. }

  38. class MyString {

  39. }
  40. /**/
复制代码


为什么是<= ,为什么不会越界。

1 个回复

倒序浏览
这里这样说是因为,当字符串为“ ”一个空格的字符串时,start=0;end=0;针对这种情况也是可行的。返回的是去掉空格后为null
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马