大家都知道,在Java中,String这个对象为我们封装好了一些可供调用的字符串操作的方法,比如length(),trim()等等,那么trim()方法的作用就是去掉字符串两端的空格的,对于开发,我们直接利用String对象调用即可。那么现在如果我们想自己实现一个去除字符串两边空格的方法,该怎么做呢?在此,我们利用java语言实现代码。
class Main { 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 str1=" a b "; System.out.println("str1="+"("+str1+")"); String str2=myTrim(str1); System.out.println("str2="+"("+str2+")"); } }
分析总结:
一、在我们的代码中,如果start<=end的条件行不行?,这是不行的,举一个反例,比如"",此空字符串的长度为0,但是别忘记了,它依然是一个对象,假设我们将此空串传入,如果没有start<=end,那么,str.charAt(0),马上就会出现下标越界的异常。
二、如果没有start<=end中的=行不行?,这是不行的,如果没有的话,假设现在有如下一个字符串" ",其中里面有3个空格,通过分析代码,最终的输出结果还是会取得此字符串的最后一个空格,有兴趣验证的朋友可以将代码中的" "空格改成"-",用-代替空格验证,这样运行代码便能够看出效果。
三、在代码中我们调用了字符串本身的的方法char charAt(int index)和String substring(int beginIndex,int endIndex),charAt(int index) 方法用于返回指定索引处的字符,索引范围为从 0 到 length() - 1。substring(int startIndex,int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始, endIndex:到指定的 endIndex-1处结束。记住,是不包括endIndex处的字符的。如果 beginIndex 为负,或length大于字符串长度,则抛出IndexOutOfBoundsException 。