在开发中我们会遇到需要去除左右空格的需求,如果只是简单的空格,调一下trim()方法即可,但如果有中文全角、回车等看起来是空格的非空格,则需要自定义来开发实现,下面这个工具可以实现去左右那些看起来是空格的所有空格字符。

import com.google.common.base.CharMatcher;

/**
* @author yangzhilong
* @date 6/25/2019
*/
public class TrimUtils {
/**
* trim left and right char to "",chars like tab/chinese space/enter/english space
* @return
*/
public static String trimAnyBlank(String str) {
if(null != str) {
// String phone = "‭15800000000"; 该字符串实际的字符长度是 12, 其中15前面有一个看不见的字符, 既不是中文空格也不是英文空格.
// System.out.println(TrimUtils.trimAnyBlank(phone).length());
return CharMatcher.anyOf("\r\n\t \u00A0 ‭").trimFrom(str);
}
return str;
}
}

单元测试:

import static org.junit.Assert.assertEquals;

import org.junit.Test;

/**
* @author yangzhilong
* @date 6/25/2019
*/
public class TrimUtilsTest { @Test
public void testTrim() {
// 左右各有全角状态下的空格
String str = "  xfd  ";
int length = TrimUtils.trimAnyBlank(str).length();
assertEquals(length, 3);
}
}

java去左右的空格(包括全角空格,tab,回车等)的更多相关文章

  1. 关于JAVA正则匹配空白字符的问题(全角空格与半角空格)

    今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下    \s    不支持全角 1.& ...

  2. sql语句,一个全角空格的考验

    早晨在群里灌水.突然有人发了这个,问哪里错了,下图是sql语句和报错信息... 一群人猜了半天,呵呵,最后发现是 ”全角空格“ 引起的...真是醉了..记录下,引以为戒.

  3. 经历:sybase的sql查询,当传递的参数中包含全角空格(\u00a0),查询慢

    今天,我遇到了一个sybase数据库查询的问题.一句简单的sql,但是不知道为什么查询不出来,导致生产生产服务器频频挂掉.吓得我的小心脏砰砰啊. select DISTINCT A.FCIL_CDE ...

  4. php中的字符串常用函数 str_replace 字符串替换,替换全角空格

    <?php $str = "hello world!"; echo(str_replace(array('hello', 'world'), array('tom', 'cl ...

  5. 使用正则实现php的trim函数,支持全角空格

    之前使用trim来移除一段文字开头的空格,移除不掉,发现是全角空格的锅. 便专门添加对全角空格的移除: trim($str," "); 但是效果并不好,因为trim函数对多字节字符 ...

  6. php中利用正则去掉中文全角空格

    一开始用$temp = trim($temp, " "); 这种方法,导致trim后的中文字符有乱码 最后 $str = " 广东君孺律师事务所 "; $str ...

  7. php中英文截取无乱码 包括全角下的字符

    符合UTF-8下,如果GBK下  改为  $content .= $str[$sing].$str[$sing+1];        $sing += 3; 改为 $sing += 2; /**    ...

  8. KindEditor自动过滤首行缩进和全角空格的解决方法

    KindEditor 4.1.11:kindeditor-all.js 文件中大致第752行: /(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?: ...

  9. java去全半角空格,trim(), replaceAll(" +",""),replaceAll("\\s*", ""), replaceAll(" | ", "")

    JAVA中去掉空格 . String.trim() trim()是去掉首尾空格 .str.replace(" ", ""); 去掉所有空格,包括首尾.中间 St ...

随机推荐

  1. 并不对劲的bzoj5020:loj2289:p4546:[THUWC2017]在美妙的数学王国中畅游

    题目大意 有一个n(\(n\leq 10^5\))个点的森林,每个点\(u\)上有个函数\(f_u(x)\),是形如\(ax+b\)或\(e^{ax+b}\)或\(sin(ax+b)\)的函数,保证当 ...

  2. Gym 100512F Funny Game (博弈+数论)

    题意:给两个数 n,m,让你把它们分成 全是1,每次操作只能分成几份相等的,求哪一个分的次数最多. 析:很明显,每次都除以最小的约数是最优的. 代码如下: #pragma comment(linker ...

  3. Spring AOP 面向切面编程入门

    什么是AOP AOP(Aspect Oriented Programming),即面向切面编程.众所周知,OOP(面向对象编程)通过的是继承.封装和多态等概念来建立一种对象层次结构,用于模拟公共行为的 ...

  4. ntp多台主机时间同步

    通俗的讲,多台主机ntp时间同步,就是自定义集群中一台机器(我们这里叫它server)与网络时间同步,然后其它主机与server主机时间同步 另外,ntp时间同步机制不是我们想象的那样直接同步,而是“ ...

  5. iOS 消除Xcode警告

    - undeclared selector #pragma clang diagnostic push #pragma clang diagnostic ignored"-Wundeclar ...

  6. 【react native】有关入坑3个月RN的心路历程

    由于一些原因,笔者最近变更到了RN的团队,回归到了hybrid app的开发的圈子中,固然是有蛮多新鲜感和新机遇的,不过遥想起以前在hybrid中各种view之前跳转的头疼等各种问题,笔者怀着忐忑的心 ...

  7. _bzoj1051 [HAOI2006]受欢迎的牛【强联通】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1051 保存tarjan模版. 求强联通分量,缩点. #include <cstdio& ...

  8. JAVA中abstract,interface,final,static语法

    转自:http://www.cnblogs.com/yueue/archive/2010/04/20/1715863.html 一,抽象类:abstract     1,只要有一个或一个以上抽象方法的 ...

  9. 获取select里面option所有的值

    1.HTML结构 <select id="test"> <option value="option-1">option-1</op ...

  10. Oracle函数大全下载

    Oracle函数大全下载 是一个压缩包,里面是一个chm格式的帮助文档,很实用.