黑马程序员技术交流社区
标题:
模拟trim方法,去除字符串两端空格
[打印本页]
作者:
Cola
时间:
2013-11-28 20:27
标题:
模拟trim方法,去除字符串两端空格
模拟trim方法,去除字符串两端空格,while中用startsWith和endsWith判断,请问为什么没出现想要的结果呢?
class StringTest1
{
public static void main(String[] args)
{
String s=" ab cd ";
//sop(s);
String s1=myTrim1(s);
sop(s1);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
public static String myTrim1(String str)
{
int start=0;
int end=str.length()-1;
while(start<=end&&str.startsWith(" "))
{
start++;
}
while(start<=end&&str.endsWith(" "))
{
end--;
}
sop(start);
sop(end);
str=str.substring(start,end+1);
return str;
}
}
复制代码
作者:
侠客梦的懒猫
时间:
2013-11-28 22:11
while中用startsWith和endsWith判断,你的start在增加没错,但是你并没有将你得到的新字符串覆盖原来的字符串
对于第一个while,应改一下:
start++;
str=str.substring(start, str.length());
//测试
System.out.println(str);
对于第二个while,也要改一下:
end=str.length()-1;
str=str.substring(start,end);
System.out.println(str);
这样并没有解决@Cola你的问题,输出结果为ad cd,中间没去掉,希望给你带来一点思路。
我的思路与你这个不一样,这是我实现的代码,
package heima;
public class StringTest2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s=" ab cd ";
System.out.println(mytrim(s));
}
public static String mytrim(String str)
{
//生成新的字符串
char[] newstr=new char[str.length()];
//计数
int count=0;
for(int i=0;i<str.length();i++)
{
char c=str.charAt(i);
if(c!=' ')
{
newstr[count]=c;
count++;
}
}
return new String(newstr,0,count);
}
}
复制代码
作者:
FFF
时间:
2013-12-2 00:16
同学、问题已经解决了吗?
如果没有、就去新版28期问吧,26~27已经结束了。开班了!
http://bbs.itheima.com/forum-165-1.html
如果问题已经解决,请及时修改主题为“提问结束”。
修改主题的方法链接
http://bbs.itheima.com/thread-89313-1-1.html
如果没有解决,可能你的问题问得不够清楚。可以重新发问的哦~
作者:
Cola
时间:
2013-12-2 13:14
FFF 发表于 2013-12-2 00:16
同学、问题已经解决了吗?
如果没有、就去新版28期问吧,26~27已经结束了。开班了!
http://bbs.itheima.co ...
去28期提问了,谢谢。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2