java去空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java去空格相关的知识,希望对你有一定的参考价值。

今天我试下了下replaceall去空格,在网上看到这两个方法,是可以去,
可是我想知道那个“\\s*”和“ +”这两个是什么意思??

java去掉空格,主要使用string的替换方法,如下:

1. String.trim()
trim()是去掉首尾空格
 
2.str.replace(" ", ""); 去掉所有空格,包括首尾、中间
String str = " hell o ";
String str2 = str.replaceAll(" ", "");
System.out.println(str2);
 
3.或者replaceAll(" +",""); 去掉所有空格
 
4.str = .replaceAll("\\\\s*", "");
可以替换大部分空白字符, 不限于空格 
\\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个
 
5.或者下面的代码也可以去掉所有空格,包括首尾、中间
public String remove(String resource,char ch)
    
        StringBuffer buffer=new StringBuffer();
        int position=0;
        char currentChar;

        while(position<resource.length())
        
            currentChar=resource.charAt(position++);
            if(currentChar!=ch) buffer.append(currentChar);  return buffer.toString();
    
参考技术A

  第一个是可以去除空白,这里的“空白”指的不仅仅是空格,比如制表符换行符等;

  下面是个例子,你自己试试。

  第二个是单纯的去除空格,和replaceAll(" ","")效果一样

    String m = "\\n a \\n b \\n c \\t d";
  System.out.println(m);
  m = m.replaceAll("\\\\s*", "");
  System.out.println(m);//输出结果为一行:"abcd"

    

参考技术B \\s和一个空格是有很大区别,前者是正则表达式中定义的【\s】[这里用了两个\,第一个\是在java字符串中进行转义用的],后者仅仅是一个普通字符;
*表示0个或多个,而+号表示至少一个
参考技术C 如果去除前后空格,则使用 str.trim();
如果想要去除所有空格,则可以 str.replaceAll(" ","");

str代表你想要操作的字符串
参考技术D   先说一下replace和replaceAll的区别
  replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
  replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
  另外,如果replaceAll()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即也支持字符串的操作;
  所以,你问的就简单了,\\s是正则表达式,只因为\是java转义字符,所以需要多加一个\,就是正则中的\s,\s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等;至于你第二个中的“ +”也是正则表达式,+表示重复一次或更多次,所以“ +”,表示一个或者多个的空格都要被全部替换
  希望能帮到你!本回答被提问者采纳

java去左右的空格(包括全角空格,tab,回车等)

在开发中我们会遇到需要去除左右空格的需求,如果只是简单的空格,调一下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) 
            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去空格的主要内容,如果未能解决你的问题,请参考以下文章

java去左右的空格(包括全角空格,tab,回车等)

java 对象参数去空格方式

字符串去空格 java , js和Jquery 方法

java导入excel后面有空格(用了trim()去不了)

miniui页面中字符串去空格方法

关于javascript提交到java后台空格去不掉ASCII为160的解决办法