黑马程序员技术交流社区
标题:
毕向东老师的字符串练习
[打印本页]
作者:
程立彬
时间:
2011-11-21 09:24
标题:
毕向东老师的字符串练习
本帖最后由 程立彬 于 2011-11-23 08:40 编辑
import java.lang.*;
public class MyTrim {
public static void main(String[] args) {
String str = " ";
Trim trim = new Trim();
trim.myTrim(str);
}
}
//字符串截取类
class Trim{
public void myTrim(String str)
{
int start = 0;
int end =str.length() -1;
while(str.charAt(start) == ' ' && start < end){
start ++;
}
while(str.charAt(end) == ' ' && start < end){
end--;
}
String s = str.substring(start,end+1);
System.out.println("s="+s);
}
}
在毕向东老师的讲解视频里面 while的循环条件为 start <= end,可是这样当我运行程序,将 传入的 string设为空的时候 会出现异常,而把它设为 start<end就没有问题了,请问是不是我哪里想错了,还是毕老师的视频有一点小问题,我先声明一下本人绝对没有挑战毕老师的意思
作者:
申绪胜
时间:
2011-11-21 10:24
如果为空的话,长度为0,那么初始end就为—1了,
然后到这条语句的时候String s = str.substring(start,end+1);
也就是String s=str.substring(0,0),也就是从第一个位置开始截取0个字符,还是空值,
老师写的没错
作者:
程立彬
时间:
2011-11-21 11:34
申绪胜 发表于 2011-11-21 10:24
如果为空的话,长度为0,那么初始end就为—1了,
然后到这条语句的时候String s = str.substring(start,end ...
substring(start,end)两个参数的区间,不是包含start不包含end吗即 【start,end)
如果end一开始为 -1了,因为 str.length() -1 == -1
那么执行String s = str.substring(0,0)的时候,不应该是 从 0到-1吗,这样不是错了吗?
作者:
花开~的季节
时间:
2012-2-20 22:14
0的话,end就为-1了,问题就解决了赛,老师一般没啥问题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2