黑马程序员技术交流社区
标题:
关于String老毕的视频,做了MyTrim()的练习。有个小问题请教
[打印本页]
作者:
zhengsx
时间:
2015-11-4 22:02
标题:
关于String老毕的视频,做了MyTrim()的练习。有个小问题请教
//需求,模拟trim功能
//myTrim
class StringExercise_myTrim {
public static void print(Object obj){
System.out.println(obj);
}
//自己想的方法,效率较低,运行时会创建多个字符串对象。
public static String myTrim(String s){
boolean b = false;
String s1 = s;
while (true) {
if (s1.startsWith(" ")) {
s1 = s1.substring(1);
}else if (s1.endsWith(" ")) {
s1 = s1.substring(0,s1.length()-1);
}else return s1;
}
}
//毕姥爷的方法
public static String BTrim(String s){
int begin = 0,end = s.length()-1;
while (begin <= end && s.charAt(begin)==' ') { [b]//这里为什么是<= ,为什么不会越界。[/b]
begin++; //而如果改成<,当字符串为一串空格时,会留下一个空格。
}
while (begin <= end && s.charAt(end)==' ') {
end--;
}
return s.substring(begin,++end);
}
//主方法在这。
public static void main(String[] args){
String s = " 啊 ";
print("&"+s+"&");//原先字符串
print("&"+myTrim(s)+"&");//
print("&"+BTrim(s)+"&");
}
}
class MyString {
}
/**/
复制代码
为什么是<= ,为什么不会越界。
作者:
liuqianfly
时间:
2015-11-6 22:24
这里这样说是因为,当字符串为“ ”一个空格的字符串时,start=0;end=0;针对这种情况也是可行的。返回的是去掉空格后为null
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2