用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;}
}

结果很明显是实现了该功能,或许有可以进行优化的地方,欢迎留言与我讨论交流!

用java自己实现String类的trim()方法功能相关推荐

  1. String类的trim()方法之不能消除的空格

    在后台数据统计清洗中,我们时常会遇到针对字符串的修改的问题,其中比较常见的就是消除字符串中的空格.这里笔者要阐述的不是如何消除字符串中出现的空格,而是在消除字符串中遇到的问题:有些空格不能使用trim ...

  2. Java基础:String类

    相关阅读 Java基础:String类 Java字符串格式化 Java基础:正则表达式 1. 概述 字符串是由多个字符组成的一串数据(字符序列),字符串可以看成是字符数组. 在实际开发中,字符串的操作 ...

  3. java的知识点15——String基础、String类和常量池、String类常用的方法、字符串相等的判断、组合模式

    String基础 1. String类又称作不可变字符序列. 2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类. 3. Java字符串就是Unicode ...

  4. 关于JAVA的String类的一些方法

    一.得到字符串对象的有关信息 1.通过调用length()方法得到String的长度. String str="This is a String"; int len =str.le ...

  5. java字符_Java String 类

    Java String 类 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 创建字符串最简单的方式如下: St ...

  6. 学java教程之String类

    学编程吧学java教程之String类发布了,欢迎通过xuebiancheng8.com来访问 java类中的String类应该是用的最多的一个类,我们时时刻刻都离不开String类,时时刻刻都在用, ...

  7. Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释

    Java中String类的concat方法 在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private ...

  8. Java 11:String类中的新方法

    Java 11:String类中的新方法 Java 11没有很多特定于语言的功能.因此,令人惊讶的是,在Java String Class中引入了6种新方法. Java 11 String类新方法 让 ...

  9. Java SE 027 String类源代码深析

    Java SE 027 String类源代码深析 前言:此笔记为圣思园张龙老师讲述的java视频课程笔记,自己看视频学习时记录的,用于积累与复习,在此分享给学习软件编程的兄弟姐妹们,以供参考. 1.e ...

最新文章

  1. Spring boot 整合 Mybatis 实现增删改查(MyEclipse版)
  2. python--html to pdf
  3. smarty去除html标签,Smarty与脚本中的html标签爆裂
  4. mysql 取 映射数据库中_JAVA与数据库MySQL相连接
  5. jzoj1082-合并果子【堆,贪心】
  6. Redis-列表(List)基础
  7. Node.js 用户注册功能的实现
  8. 抗滑桩弹性计算方法_抗滑桩设计与计算99147
  9. 建立Socket Policy服务器
  10. 中国网站备案制度——祸国殃民
  11. 2022年自考专业考试(计算机应用)离散数学模拟冲刺题
  12. p2p网络中的NAT穿透
  13. 物联网平台具体都有哪些特点
  14. CTF也需要了解点电脑系统还原点
  15. 《平凡的世界》读后感
  16. 从事数据分析很牛X?要看你有没有认证
  17. 微信朋友圈得内容可以爬取吗?看完这篇你心里就有底了
  18. 单目图像深度估计 - 迁移篇:Depth Extraction from Video Using Non-parametric Sampling
  19. 余士维讲座中的十八个故事[转载]
  20. xtrabackup备份失败问题解决

热门文章

  1. 电容笔有必要买原装的吗,国货电容笔推荐
  2. 学生怎么样充分使用服务器
  3. 映射:每个国家/地区的主要出口商品
  4. Elasticsearch 设置密码,并配置 Kinaba 和 Filebeat
  5. 博客摘录「 各品牌网络监控摄像头RTSP地址查询」2023年5月23日
  6. 从放弃本专业,到直播编程,这女孩如何做到的?
  7. Autoit 常用函数
  8. 噪声和纹波有什么区别?
  9. C++中的常对象与常引用
  10. InputNumber计数器