• String常见算法(一)


    模拟一个trim方法,去除字符串两端的空格。

    目录

    模拟一个trim方法,去除字符串两端的空格。

    方式一:

    思路

    代码(以"  ***abf def***  "为例)

    运行结果

    方式二

    代码

    运行结果


    方式一:

    思路

     1、利用toCharArray()将该字符串变量转换为一个字符型数组
     2、从该字符数组尾部开始遍历该数组,遇到第一个不是空格的字符停止遍历,并记录当前位置
     3、从该数组的头部开始遍历,遇到第一个不为空格的字符,将此字符添加到一个新的字符串变量中,一直到i结束
    

    代码(以"  ***abf def***  "为例)

    1. package com.light.exer;
    2. /**
    3. * @auther light
    4. * @Description String 模拟一个trim方法,去除字符串两端的空格。
    5. * 思路:
    6. * 1、利用toCharArray()将该字符串变量转换为一个字符型数组
    7. * 2、从该字符数组尾部开始遍历该数组,遇到第一个不是空格的字符停止遍历,并记录当前位置
    8. * 3、从该数组的头部开始遍历,遇到第一个不为空格的字符,将此字符添加到一个新的字符串变量中,一直到i结束
    9. * 4、返回该字符串变量
    10. * @create 2022-11-24 20:21
    11. */
    12. public class StringAlgorithmsTest01 {
    13. public static void main(String[] args) {
    14. String str1=" ***abf def*** ";
    15. System.out.println("原字符串为:\n"+str1);
    16. String str2 = str1.trim();
    17. System.out.println("********利用trim()去掉首尾空格********");
    18. System.out.println(str2);
    19. System.out.println("********利用自定义算法myTrim()去掉首尾空格********");
    20. String str3=myTrim(str1);
    21. System.out.println(str3);
    22. }
    23. public static String myTrim(String str){
    24. if(str==null){
    25. return "";
    26. }
    27. char[] s=str.toCharArray();
    28. int i=0,isFlag=0,j=0;
    29. String s1="";//用来接收字符值
    30. for(i=s.length-1;s[i]==' ';){
    31. i--;
    32. }
    33. while(j<=i){
    34. if(s[j]!=' '&&isFlag==0){//isFlag作用:标志,当遇到第一个不是空格字符时isFlag变
    35. //为1;防止将字符串中不是首尾的的空格去掉
    36. isFlag=1;
    37. }
    38. if(isFlag==1){
    39. s1+=s[j];
    40. }
    41. j++;
    42. }
    43. return s1;
    44. }
    45. }

    运行结果

    方式二

    代码

    1. public class StringExer {
    2. public String myTrim(String str) {
    3. if (str != null) {
    4. int start = 0;// 用于记录从前往后首次索引位置不是空格的位置的索引
    5. int end = str.length() - 1;// 用于记录从后往前首次索引位置不是空格的位置的索引
    6. while (start < end && str.charAt(start) == ' ') {
    7. start++;
    8. }
    9. while (start < end && str.charAt(end) == ' ') {
    10. end--;
    11. }
    12. if (str.charAt(start) == ' ') {
    13. return "";
    14. }
    15. return str.substring(start, end + 1);
    16. }
    17. return null;
    18. }
    19. @Test //利用单元测试
    20. public void myTrimTest(){
    21. String s=" ***abc*** ";
    22. String s1 = myTrim(s);
    23. System.out.println(s1);
    24. }
    25. }

    运行结果

  • 相关阅读:
    OpenCV官方教程中文版 —— 图像修复
    我的创作纪念日
    安踏携手华为运动健康共同验证冠军跑鞋 创新引领中国体育
    静态文件鉴权
    牛视系统源码,抖音矩阵系统功能开发定制。I‘m here
    前端跨域方案看这篇就够了
    开设自己的网站系类02配置服务器
    宝塔上创建站点
    SQL注入基础
    常见的MySQL语句类型及其基础用法
  • 原文地址:https://blog.csdn.net/zssxcj/article/details/128027573