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日

相关文章

  • struts2与cookie 实现自动登录和验证码验证实现代码

    实现自动登录和验证码验证是网站开发中比较常见的需求。在 Struts2 中,可以通过 Cookie 实现自动登录,在用户下次访问网站时,可以直接读取 Cookie 中的登录信息,将用户登录状态自动恢复。验证码则是为了保证网站的安全性,防止自动化程序暴力攻击登录页面。下面介绍基于 Struts2 框架的自动登录和验证码验证的实现方法。 自动登录实现方法 在用户…

    Java 2023年5月20日
    00
  • Java深入探究Object类的方法

    Java深入探究Object类的方法 Object类是Java中最基础的类,所有Java类都是从Object类继承而来的。Object类定义了Java中通用的方法,然而许多Java程序员并不能完整地掌握Object类的方法,这不仅仅是一个缺陷,更是对Java理解的不足。本篇文章将为您详细讲解Java深入探究Object类的方法,包括常用方法,继承关系,equ…

    Java 2023年5月26日
    00
  • Flink自定义Sink端实现过程讲解

    好的。首先,讲解Flink自定义Sink端实现过程,我们需要先了解Flink中DataStream API中对于Sink的定义。 Flink中,DataStream API提供了一些内置的Sink操作,如print、writeAsText等。这些内置的Sink操作可以满足大部分常见的业务需求,但对于一些特殊的需求,我们可能需要自己实现一些自定义的Sink操作…

    Java 2023年5月20日
    00
  • springboot 使用websocket技术主动给前端发送消息的实现

    以下是详细的攻略。 1. WebSocket简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间可以双向通信,可以实现实时通信、弹幕等功能。 2. springboot使用WebSocket发送消息的实现 2.1 添加依赖 在pom.xml文件中添加WebSocket的依赖: <dependency> &…

    Java 2023年6月15日
    00
  • springMVC实现图形验证码(kaptcha)代码实例

    下面是“springMVC实现图形验证码(kaptcha)代码实例”的完整攻略。 1. 环境准备 首先需要准备以下环境: Java 7 或以上版本 Maven 3 或以上版本 Spring Framework 4 或以上版本 kaptcha 2.3.2 或以上版本 2. 添加依赖 在 Maven 中添加以下依赖: <dependency> &lt…

    Java 2023年5月16日
    00
  • springboot数据库密码加密的配置方法

    当我们在使用SpringBoot开发项目中,经常需要对数据库的密码进行加密,以保障密码信息的安全。下面是一份完整的攻略,讲解了使用SpringBoot 加密数据库密码的配置方法。 第一步:依赖 在pom.xml中添加如下模块依赖: <dependency> <groupId>com.ulisesbocchio</groupId&…

    Java 2023年5月19日
    00
  • 浅谈web服务器项目中request请求和response的相关响应处理

    关于“浅谈web服务器项目中request请求和response的相关响应处理”,我们可以从以下几个方面展开: 一、HTTP request请求的相关处理 HTTP请求通常包括方法、URL、HTTP版本、请求头和请求体等部分,服务器在接收到请求后需要根据请求的不同部分进行处理。 方法(method) 请求方法指定了客户端希望服务器执行的操作。常用的方法有GE…

    Java 2023年6月15日
    00
  • 如何基于ssm框架实现springmvc拦截器

    基于SSM框架实现SpringMVC拦截器的攻略如下: 1. 创建SpringMVC拦截器类 首先,我们需要创建一个类来实现拦截器的功能。这个类需要实现SpringMVC框架提供的HandlerInterceptor接口。该接口中定义了三个方法,分别是preHandle、postHandle和afterCompletion,这些方法允许我们在请求被处理前、请…

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