java中string.trim()函数的作用实例及源码

Java中String.trim()函数的作用实例及源码

概述

Java中String类中的trim()方法是用于去除字符串两端的空格或者是其他一些字符。该方法返回一个新字符串,不改变原有的字符串。trim()方法主要被用于处理从表单中读入的数据,去除输入的误操作,如前后空格,或者用户不小心输入的空格以及tab。

方法签名

public String trim()

参数说明

该方法没有参数

返回值

返回一个新的字符串对象,其值为该字符串去掉开头和结尾的空白字符的结果。

示例说明

示例 1

public class TrimStringExample {
    public static void main(String[] args) {
        String str = "    Hello World!     ";
        System.out.println("原字符串:" + str);
        System.out.println("去除空格后:" + str.trim());
    }
}

运行结果:

原字符串:    Hello World!     
去除空格后:Hello World!

示例 2

public class TrimStringExample {
    public static void main(String[] args) {
        String str = "  \t  \n   Hello \t  \n  World!  \n  \t ";
        System.out.println("原字符串:" + str);
        System.out.println("去除空白字符后:" + str.trim());
    }
}

运行结果:

原字符串:    Hello 
           World!  
去除空白字符后:Hello 
           World!

源码分析

源码中使用了4个索引标记变量,分别是start、end、len、s。start变量用于追踪字符串的开始位置,end变量用于追踪字符串的结束位置。len变量表示字符串的长度,s变量用于指向实际的字符串内容。

源码中的while循环用于查找字符串的开始位置,直到找到第一个非空白字符为止。如果字符串一直为空白字符,那么start会一直自增,如果找到了非空白字符,那么此时start就指向了该位置。同样的,while循环查找字符串的结束位置,直到找到最后一个非空白字符为止。最后使用substring()方法截取出去掉空白字符后的字符串。

public String trim() {
    int len = value.length;
    int st = 0;
    char[] val = value;   

    while ((st < len) && (val[st] <= ' ')) {
        st++;
    }
    while ((st < len) && (val[len - 1] <= ' ')) {
        len--;
    }
    return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
}

以上就是Java中String.trim()函数的作用实例及源码的详细解释。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中string.trim()函数的作用实例及源码 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 一站式统一返回值封装、异常处理、异常错误码解决方案—最强的Sping Boot接口优雅响应处理器

    作者:京东物流 覃玉杰 1. 简介 Graceful Response是一个Spring Boot体系下的优雅响应处理器,提供一站式统一返回值封装、异常处理、异常错误码等功能。 使用Graceful Response进行web接口开发不仅可以节省大量的时间,还可以提高代码质量,使代码逻辑更清晰。 强烈推荐你花3分钟学会它! Graceful Response…

    Java 2023年5月9日
    00
  • SpringBoot启动失败的解决方法:A component required a bean of type ‘xxxxxxx‘ that could not be found.

    当我们在使用 SpringBoot 框架时,有时候会遇到启动失败的情况,报错信息通常会显示“ A component required a bean of type ‘xxxxxxx‘ that could not be found.”等类似的信息。这是由于 SpringBoot 框架无法找到相应的 bean 对象导致的。下面是一些解决启动失败的攻略: 确认…

    Java 2023年5月20日
    00
  • java读取excel文件并复制(copy)文件到指定目录示例

    针对“java读取excel文件并复制(copy)文件到指定目录示例”,我为您提供以下攻略: 一、读取Excel文件 读取Excel文件需要用到Java中的POI工具包,具体的操作步骤如下: 添加依赖包 在Maven的pom.xml文件中添加如下的依赖: <dependency> <groupId>org.apache.poi<…

    Java 2023年5月19日
    00
  • java、spring、springboot中整合Redis的详细讲解

    请看下面的详细讲解: Java整合Redis 在Java中使用Redis可以通过Jedis等第三方库实现。其基本操作流程如下: 引入Jedis库依赖: xml <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifact…

    Java 2023年5月19日
    00
  • Spring Security基本架构与初始化操作流程详解

    Spring Security基本架构与初始化操作流程详解 介绍 Spring Security是一个基于Spring框架的安全性框架,处理了身份认证(authentication)与授权(authorization)等一系列的安全性问题,能够使我们更快更简单地集成到Spring应用程序中,保障应用程序的安全性。 本篇文章将会为您详细介绍Spring Sec…

    Java 2023年6月3日
    00
  • 使用JDBC工具类实现简单的登录管理系统

    使用JDBC工具类实现简单的登录管理系统需要以下步骤: 准备工作 在项目中引入JDBC依赖,如使用Maven引入jdbc依赖: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> &l…

    Java 2023年6月16日
    00
  • 详解Java函数式编程和lambda表达式

    详解Java函数式编程和lambda表达式 什么是函数式编程 函数式编程是一种编程范式,它主要关注于描述问题是什么,而不是如何解决问题。在函数式编程中,函数是一等公民,可以像其他对象一样传递和操作。函数式编程强调表达式求值,而不是计算机执行指令。 为什么使用函数式编程 函数式编程能够简化代码逻辑,减少依赖关系,增加可重用性。使用函数式编程可以更好地利用多核处…

    Java 2023年5月26日
    00
  • Spring利用注解整合Mybatis的方法详解

    对于“Spring利用注解整合Mybatis的方法详解”的攻略,我会进行以下步骤进行讲解: 1. 添加Mybatis和Spring的依赖 在项目的pom.xml中添加以下依赖: <!– Mybatis依赖 –> <dependency> <groupId>org.mybatis</groupId> <…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部