问题描述:

java去除字符串前后空白,身为小伙子的我搞了大半天,其实蛮简单的。

解决方案:

方式一:

trim() trim()是 String里的常用的方法,作用:返回字符串的副本,忽略前导空白和尾部空白*

在这里插入图片描述

输出结果:

在这里插入图片描述

方式二:正则表达式:

replaceAll(String regex,String replacement):也是String类的常用方法,

是一个形参为可以填正则表达式,第二形参为替换的内容

这里需要的正则式:

(1) \s 表示空格,

(2) ^表示开头

(3) $表示结尾

(4) +表示数量

在这里插入图片描述

输出结果:

在这里插入图片描述

完结~

补充:JAVA正则表达式匹配多个空格

需求

针对tab键带来的多个空格问题,有时候我们针对带空格的一行数据要进行切割,如果有多个空格就会出现就会切割空格出现,我们想把空格都去掉,所以需要用到某些方法。

解决方案

利用正则表达式来匹配空格

\\s+

首先利用split("\\s+");方法来对字符串切割,尽可能的匹配空格,这里也挺有意思,因为空格数目不一样,可以动态变换匹配的空格数量,这个实现原理可以看看底层原理,挺有意思。

测试:

  String string="a   b  a  a ";
  for(String a:string.split("\\s+")){
   System.out.println(a);
  }

扩充知识

正则表达式的() [] {}有不同的意思。

() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。(\s*)表示连续空格的字符串。

[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。

{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s{1,3}表示匹配一到三个空格。

(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。

[0-9]{0,9} 表示长度为 0 到 9 的数字字符串

()和[]有本质的区别

()内的内容表示的是一个子表达式,()本身不匹配任何东西,也不限制匹配任何东西,只是把括号内的内容作为同一个表达式来处理,

例如:(ab){1,3},就表示ab一起连续出现最少1次,最多3次。如果没有括号的话,ab{1,3},就表示a,后面紧跟的b出现最少1次,最多3次。另外,括号在匹配模式中也很重要。这个就不延伸了,LZ有兴趣可以自己查查

[]表示匹配的字符在[]中,并且只能出现一次,并且特殊字符写在[]会被当成普通字符来匹配。例如[(a)],会匹配(、a、)、这三个字符。

所以() [] 无论是作用还是表示的含义,都有天壤之别,没什么联系

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员的世界。如有错误或未考虑完全的地方,望不吝赐教。

java 使用正则表达式去除前后空格的更多相关文章

  1. Java RPC 框架 Solon 1.3.1 发布,推出Cloud接口与配置规范

    Solon 是一个微型的Java RPC开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,3500多次的commit;内核保持0.1m的身材,超高的跑分,良好的使用体验。支持:Rpc、Rest api、Mvc 多种开发模式。Solon 强调:克制 + 简洁 + 开放的原则;力求:更小......

  2. 通过Spring自定义NamespaceHandler实现命名空间解析(推荐)

    spring中在使用xml进行bean配置时,我们经常出现<context:annotation-config/>这样的配置,或是在使用dubbo时,暴露服务时,使用<dubbo:service interface="xxx" ref="yyy&quo......

  3. java中instanceof 关键字作用和实际用途详解

    instanceof1. instanceof 是Java中的一个关键字,Java中的关键子都是小写。2. instanceof关键字的作用是判断左边对象是否是右边类(这里有很多人说是对象,所以注意这里是类,并不是对象)的实例(通俗易懂的说就是:子类对象,或者右边类本身的对象)返回的boolean类......

  4. Java中的clone方法实例详解

    Java中对象创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2 使用clone方法复制......

  5. javaWeb如何实现随机图片验证码详解

    实现步骤1:Java后台生成一张随机数字/字母/汉字验证码的图片。2:存入redis或者session。3:用户输入验证码跟redis取出数据做比对。图片生成工具类public class RandomValidateCodeUtil {public static final String RAND......

  6. Java 集合学习笔记

    Java集合自学学习笔记,内容主要包含:Collection接口及其子接口 List、Set,Iterator 迭代器接口,Map接口核Collections 工具类。@目录Java 集合(容器)一、Java 集合框架概述二、Collection 接口方法三、Iterator 迭代器接口1. 使用 ......

  7. java中“==“和equals()的区别详解

    今天我们探讨一下Java中"=="与equals()的区别==:关系运算符在基本数据类型中比较两个值的内容是否相等在引用类型型中比较的是两个对象的地址是否相等equals()是Object类中的方法1.基本数据类型无法使用equals()方法2.在引用类型中若是没有重写Objec......

  8. 详解Java字节码编程之非常好用的javassist

    一、Javassist入门(一)Javassist是什么Javassist是可以动态编辑Java字节码的类库。它可以在Java程序运行时定义一个新的类,并加载到JVM中;还可以在JVM加载时修改一个类文件。Javassist使用户不必关心字节码相关的规范也是可以编辑类文件的。(二)Javassist......

  9. Java下载远程服务器文件到本地(http协议和ssh2协议)

    Java中java.io包为我们提供了输入流和输出流,对文件的读写基本上都依赖于这些封装好的关于流的类中来实现。前段时间遇到了以下两种需求:1、与某系统对接,每天获取最新的图片并显示在前端页面。该系统提供的是一个http协议的图片URL,本来获取到该系统的图片地址以后在HTML中显示就可以了,但是该......

  10. JVM虚拟机Class类文件研究分析

    本文对java编译后的Class文件进行研究,依次介绍了Class文件中魔数、JDK版本号、常量池、访问标志、类索引、父类索引与接口索引集合、字段表、方法表、属性表等,最后简单介绍了Class文件阅读流程。前言为了研究Class文件,先编写一个最简单的代码:package com.courage;p......

随机推荐

  1. 关于C++中构造函数的常见疑问

    基本概念我们已经知道在定义一个对象时,该对象会根据你传入的参数来调用类中对应的构造函数。同时,在释放这个对象时,会调用类中的析构函数。其中,构造函数有三种,分别是默认构造函数,有参构造函数和拷贝构造函数。在类中,如果我们没有自行定义任何的构造函数,编译器会为我们提供两种构造函数(默认构造函数和拷贝构......

  2. Python 学习笔记(1)

    Mac下载安装Pythonmac 系统自带有python 。但就最新的mac系统而言,它自带的python版本为2.*版本。虽然不影响对于老python项目的运行,但3.*版本中很多语法都发生了改变,为了方便后面的学习和使用还是最新版本会好一点1. 查看mac系统自带的pythonmac自带pyth......

  3. 文件上传漏洞全面渗透姿势总结

    文件上传漏洞全面渗透姿势总结0x00 文件上传场景(本文档只做技术交流,切勿进行违法犯罪操作,请做一个好人,不给别人添麻烦)文件上传的场景真的随处可见,不加防范小心,容易造成漏洞,造成信息泄露,甚至更为严重的灾难。比如某博客网站评论编辑模块,右上角就有支持上传图片的功能,提交带有恶意字符串的图片后,......

  4. 用Python自动清理电脑内重复文件,只要10行代码(自动脚本)

    给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除主要涉及的知识点有:os模块综合应用glob模块综合应用利用filecmp模块比较两个文件步骤分析该程序实现的逻辑可以具化为:遍历获取给定文件夹下的所有文件,然后通过嵌套循环两两比较文件是否相同,如果相同则删除后者。实现问......

  5. python Requsets下载开源网站的代码(带索引 数据)

    环境搭建python 3.xrequests 包re 包gooey包 (用于可视化)代码import requestsimport reimport osfrom gooey import Gooey, GooeyParserimport times = requests.Session()def ......

  6. ES6在工作中会用到的核心知识点讲解

    一、var, let, const谈到ES6,估计大家首先肯定会想到var,let,const咱就先谈谈这三者的区别var a = 3;{var a = 4;}console.log(a);//4let b = 5;{let b = 6;}console.log(b);//5const c = 7;......

  7. django中显示字符串的实例方法

    1、quicktool/view.py文件修改视图函数index(),渲染一个home.html模板,在视图中传递一个字符串名称是 string 到模板 home.htmldef index(request):string = u'这是一个由Django2.1.7版本写出的视图内容!'return ......

  8. 用python写个博客迁移工具

    前言最近不少写博客的朋友跟我反馈博客园的一些文章下架了,这让我联想到去年简书一样,我之前写的博客都被下架不可见了。我最开始接触的博客网址是 csdn、思否、简书还有博客园等,但是后期发现,单论博客的生态感觉做的越来越不行,干货虽然很多,但是垃圾、标题党很严重,我自己也有一些博文被莫名的搬走直接标为原......

  9. JavaScript Html实现移动端红包雨功能页面

    本文实例为大家分享了Html实现移动端红包雨功能页面的具体代码,供大家参考,具体内容如下实现效果如下:具体代码如下html部分:红包雨demo.css为初始化css,可以不加index.css部分body{width: 100%;height: 100%;background-image: url(/Java/......

    ____
  10. ________
  11. 微信小程序自定义scroll-view的实例代码____

    小程序自定义 scroll-view 滚动条话不多说, 直接上效果图效果图wxml代码<scroll-view scroll-x class="scroll-view" bindscroll="bindScroll"><block wx:fo......