黑马程序员技术交流社区
标题:
Trim去除前后空格问题(打印结果咋一样呢)
[打印本页]
作者:
孙万利
时间:
2012-11-29 23:21
标题:
Trim去除前后空格问题(打印结果咋一样呢)
1.模拟一个trim方法,去除字符串两端的空格
思路:
1.判断字符串第一个位置是否是空格,如果是继续向下判断,知道不是空格为止
结尾处判断空格也是如此
2.当开始和结尾都判断到不是空格时,就要获取该字符串
class StringTest
{
public static void sop(String str)
{
System.out.println(str);
}
//练习一:去除字符串两端空格
public static String myTrim(String str)
{
int start=0,end=str.length()-1;
while(start<=end && str.charAt(start)==' ')
start++;
while(start<=end && str.charAt(end)==' ')
end--;
return str.substring(start,end+1);
}
public static void main(String[] args)
{
String s=" ab cd ";
sop("("+s+")");
myTrim(s);
sop("("+s+")");
}
}
TT截图未命名.jpg
(8.27 KB, 下载次数: 25)
下载附件
2012-11-29 23:21 上传
作者:
深井看海
时间:
2012-11-30 00:14
public static void main(String[] args) {
String s = " ab cd ";
sop("(" + s + ")");
myTrim(s); //你这里已经实现去除了两端空格的功能
sop("(" + s + ")");//可是你这里打印输出的还是原有的字符串
// sop("(" + myTrim(s) + ")");//你可以直接打印输出
// String ss = myTrim(s);//或是再定义一个新的字符串变量存储
// sop("(" + ss + ")");//打印输出已经去除了空格的字符串
}
作者:
冯盼
时间:
2012-11-30 02:18
将main方法中myTrim(s);改成s = myTrim(s);就可以了
作者:
黑_礼_服
时间:
2012-11-30 02:49
虽然把s变量值去除了两端空格 但是没有重新赋值输出
可以直接输出
sop("(" + myTrim(s) + ")");
就可以了
或者
s= myTrim(s); sop("(" + s+ ")");
作者:
康乐
时间:
2012-11-30 07:47
本帖最后由 color 于 2012-11-30 10:30 编辑
在主函数中,你并没有把去除空格后的值赋值给s,导致你最后打印s的时候没有得到想要的结果。
要在主函数中myTrim(s);改成s = myTrim(s);
或者可以在最后输出的时候改变代码sop("("+myTrim(s)+")");
这是因为myTrim(s),你只是改变了函数内局部变量内的s,并将s返回。
而你最后的打印s,打印的却是,在最上边定义的main函数中定义的s.
局部变量,在myTrim(s)函数后,局部变量s就将被释放了。
你忽略了局部变量与全局变量的有效范围。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2