`
藝之憾
  • 浏览: 9888 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

写个小程序,去掉字符串头尾的空格

J# 
阅读更多
   不少公司笔试会出这类的程序题,前天我就遇到这样一道题,当时没做好,回来后上网查,没找到满意的,于是我就打开API,突然看到String类有个 toCharArray()方法,灵感一来,问题解决了...
   当然,不能用API已实现的trim()方法。

   下面是我的实现:
  
 public class TrimStr {
			public static String trim(String str) {
				char[] cs = str.toCharArray();
				int start = 0,end=0; //分别求出第一个非空格字符位置和最后一个非空格字符位置
				for(int i = 0; i < cs.length; i++) {
					if(cs[i] != ' ' ) { //字符没有 equals方法
						start = i;
						break;//找到第一个非空格字符即跳出
					}
				}
				for(int j = cs.length-1; j >= 0; j--) {
					if(cs[j] != ' ') {
						end = j;
						break;//找到最后一个非空格字符即跳出
					}
				}
				return str.substring(start, end+1);//取 start 到 end,不+1的话就是只到end-1
			}


   这是我在JavaEye写的第一篇博文,有不好的地方,大家多多指教。另外,如果对这个问题有更好的解决方法的话,各位前辈也指点一下我哦 
分享到:
评论
3 楼 藝之憾 2009-07-14  
Michael.Tuan 写道
lz的意思是不是不能使用String自带的trim()方法呢


  嗯,我题目没说清楚...
2 楼 Michael.Tuan 2009-07-14  
  
    public static String trim(String str) {
    	int len = str.length();
    	int st = 0;
    	int off = 0;    
    	char[] val = str.toCharArray();   
    	while ((st < len) && (val[off + st] <= ' ')) {
    	    st++;
    	}
    	while ((st < len) && (val[off + len - 1] <= ' ')) {
    	    len--;
    	}
    	return ((st > 0) || (len < str.length())) ? str.substring(st, len) : str;
    }
1 楼 Michael.Tuan 2009-07-14  
lz的意思是不是不能使用String自带的trim()方法呢

相关推荐

Global site tag (gtag.js) - Google Analytics