String.trim()消除不了空格的问题及解决
String.trim()消除不了空格
项目中在后台处理空格的时候使用trim()方法没起效果
解决方法
transUserName.replaceAll("\\u00A0","");
原因:
前台传过来的是用html转义字符
生成的全角空格,而trim()方法只能消除半角的空格。
扩展
查看源码如下
/** * @return A string whose value is this string, with any leading and trailing white * space removed, or this string if it has no leading or * trailing white space. */ public String trim() { int len = value.length; int st = 0; char[] val = value; /* avoid getfield opcode */ while ((st < len) && (val[st] <= ' ')) { st++; } while ((st < len) && (val[len - 1] <= ' ')) { len--; } return ((st > 0) || (len < value.length)) ? substring(st, len) : this; }
原文的”white space“中文直译为”留白“或”空白“,但是常见文档一般翻译为”空格“,而空格的英文一般应译为”blank”或”space”,所以这块容易引起歧义。
心得:
trim()方法实际上trim掉了字符串两端Unicode编码小于等于32(\u0020)的所有字符,而全角空格\u00A0的Unicode编码为12288。
String.trim()方法说明
API说明
trim
public String trim()返回字符串的副本,忽略前导空白和尾部空白。
如果此 String 对象表示一个空字符序列,或者此 String 对象表示的字符序列的第一个和最后一个字符的代码都大于 '\u0020'(空格字符),则返回对此 String 对象的引用。
否则,若字符串中没有代码大于 '\u0020' 的字符,则创建并返回一个表示空字符串的新 String 对象。
否则,假定 k 为字符串中代码大于 '\u0020' 的第一个字符的索引,m 为字符串中代码大于 '\u0020' 的最后一个字符的索引。创建一个新的 String 对象,它表示此字符串中从索引 k 处的字符开始,到索引 m 处的字符结束的子字符串,即 this.substring(k, m+1) 的结果。
此方法可用于截去字符串开头和末尾的空白(如上所述)。
返回:
此字符串移除了前导和尾部空白的副本;如果没有前导和尾部空白,则返回此字符串。
示例代码
/** * @Title: TrimTest.java * @Package com.burns * @Description: TODO(用一句话描述该文件做什么) * @author 35725 * @date 2019年11月29日 上午11:45:17 * @version V1.0 */ package com.burns; /** * @ClassName: TrimTest * @Description: TODO(这里用一句话描述这个类的作用) * @author 35725 * @date 2019年11月29日 * */ public class TrimTest { public static void main(String[] args) { String s= " 1 1 2 3 "; System.out.println("trim方法执行之后>>>>"+s.trim()+"<<<<"); System.out.println("源字符串:>>>>"+s+"<<<<<<"); } }
执行结果
trim方法执行之后>>>>1 1 2 3<<<<
源字符串:>>>> 1 1 2 3 <<<<<<
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
idea运行java项目main方法报build failure错误的解决方法
当在使用 IntelliJ IDEA 运行 Java 项目的 main 方法时遇到 "Build Failure" 错误,这通常意味着在项目的构建过程中遇到了问题,以下是一些详细的解决步骤,以及一个简单的代码示例,用于展示如何确保 Java 程序可以成功构建和运行,需要的朋友可以参考下2024-09-09详解Spring Boot实战之Restful API的构建
这篇文章主要介绍了详解Spring Boot实战之Restful API的构建,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-01-01
最新评论