用java自己实现String类的trim()方法功能
来源:互联网 发布:淘宝手机删除评价链接 编辑:程序博客网 时间:2024/06/11 02:45
用java自己实现String类的trim()方法功能
我们都知道String类中的trim()方法的功能在于:“返回字符串的副本,其中该副本忽略前导空白和尾部空白。”(这是api的定义)。现在本博文将自己实现String类的trim()的功能,算是属于一个小算法吧!
我的思路是这样的:设置两个跑标p1,p2置于字符数组(可由字符串的toCharArray()方法获取)的首,尾,p1需要做的事情:从首到尾找出字符串首部第一次不为空格' '的字符所在的位置pos1;同样的道理,p2需要做的事情:从尾到首找出字符串尾部第一次不为空格' '的字符所在的位置pos2。这样子就确定了该字符串的首尾中去掉了空格 ' ' 的位置pos1,pos2,最后采用字符串的subString(int p1,int p2)进行进行截取即可,其中需要将subString(p1,p2)改为subString(p1,p2+1);
下面是代码
/** * 仿写String的 trim()方法 * @author zhonglinsen * 2016-3-1 下午 */public class StringExer {public static void main(String[] args) {String str1="abcdfef dfsd";String str2=" abcd fd";String str3="adbc fd ";String str4=" fdf fdfd ";String str5=" ";//System.out.println(testTrim(str1));//System.out.println(testTrim(str2));//System.out.println(testTrim(str3));//System.out.println(testTrim(str4));System.out.println(testTrim(str5));}/** * 仿照String的trim() * @param strArg:需要进行去掉前后空格符的字符串 * @return:返回字符串的副本,该副本进行去掉了首尾空格符 */public static String testTrim(String strArg){char[] cVal=strArg.toCharArray();int p1=0;int len=cVal.length;//从首到尾进行遍历,如果发现了第一个不是 ' ' 就break:表示终止了遍历,找到了首部到尾部第一个不为 ' ' 的位置while(p1 < len){if (cVal[p1] == ' ') {p1 += 1;}else{break;}}//这说明 strArg 压根就是由空格字符组成的字符串if (p1 == len) {return "";}//从尾部到首部进行遍历,如果发现了第一个不是 ' ' 就break:表示终止了遍历,找到了尾部到首部第一个不为 ' ' 的位置int p2=len-1;while(p2 >= 0){if (cVal[p2] == ' ') {p2 -= 1;}else{break;}}String subStr=strArg.substring(p1,p2+1);return subStr;}}
结果很明显是实现了该功能,或许有可以进行优化的地方,欢迎留言与我讨论交流!
0 0
- 用java自己实现String类的trim()方法功能
- java的string中的trim方法实现
- java 的String类中的trim方法实现
- JavaScript实现String 类的trim()方法
- String类的trim()方法
- 正则实现String的trim方法
- Java源码学习-String类的trim方法
- Java String类的trim方法去掉哪些空白符
- String的trim()方法
- String的trim方法
- 【练习】String类的trim方法
- c++ String去除头尾空格的方法 trim实现
- STL实现string的trim
- std::string的trim()实现
- JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
- java.lang.String中的trim()方法的详细说明
- java.lang.String中的trim()方法的详细说明
- java.lang.String中的trim()方法的详细说明
- mybatis与spring整合案例
- 微信公号开发基础系列(一)验证Token
- hadoop远程调试
- 互联网推送服务原理:长连接+心跳机制(MQTT协议)
- 第五届_六角填数
- 用java自己实现String类的trim()方法功能
- Web Service和Servlet的区别
- WMI出错的的解决方法
- Hadoop2.2伪分布式搭建步骤
- Android性能优化典范之Profile GPU Rendering
- 实战:把ASP.NET MVC中的Views下面的视图放到Views文件夹外
- jQuery中的Ajax
- centos 7 中防火墙的关闭问题
- LeetCode第96题 Unique Binary Search Trees