JAVA中如何去除字符串前后的全角空格(当中保留)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中如何去除字符串前后的全角空格(当中保留)?相关的知识,希望对你有一定的参考价值。

JAVA中如何去除字符串前后的全角空格(当中保留)?
string.trim()方法只能去除字符串前后的半角空格,我想要一个方法,同时去除字符串前后的半角空格以及全角空格!~
请求各位大大们帮帮忙啊!!!
能不能说得具体点?
最好能直接给出方法,谢谢!
另外,我需要保留字符串中间的半/全角空格,谢谢!~
再次声明一下,中间的半/全角空格是要保留的
dadao3002的方法并没有对中间的半/全角空格进行保留
但是仍然非常感谢您!~

自己写一个方法,使用split()去除角空格以及全角空格!~ split()返回是String[],后再组合成一个String

public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。

例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:

Regex 结果
: "boo", "and", "foo"
o "b", "", ":and:f"

参数:
regex - 定界正则表达式
返回:
字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的,,

根据你的要求重新编写了以个程式,测试OK,
代码如下:
class StrTest
static String stringTest(String s)
int j=0,k=0,i=0;
char[] stra=new char[s.length()];
s.getChars(0,s.length(),stra,0);
for(i=0;i<s.length();i++)
if(stra[i]==' '||stra[i]==' ')
j=i+1;

else

break;


for(i=s.length()-1;i+1>0;i--)
if(stra[i]==' '||stra[i]==' ')
k=i;

else
break;


String strb=new String(stra,j,k-j);
return strb;

public static void main(String[] args)
String str=new String(" a test test ");
System.out.println(stringTest(str));



你可以更改 String str=new String(" a test test "); 来测试
参考技术A 注意帖子里的全角空格都被改成半角空格了,运行的时候注意改回来。
去掉前后保留中间的半/全角空格
修改以上程序如下:
public static void main(String args[])
//有2个全角空格和半角空格,中间还有1个半角空格和1个全角空格
String a=" a a ";
System.out.println("*****"+a+"*****");
char[] aa=a.toCharArray();
//代替前全角空格和半角空格为半角空格
for(int i=0;i<aa.length;i++)
if(aa[i]==' '||aa[i]==' ')
aa[i]=' ';
else
break;

//代替后全角空格和半角空格为半角空格
for(int i=aa.length-1;i>=0;i--)
if(aa[i]==' '||aa[i]==' ')
aa[i]=' ';
else
break;

a=new String(aa).trim();
System.out.println("*****"+a+"*****");
参考技术B 给你个刚出炉的方法 热乎的~~ ^-^
这个方法是去掉字串前后所有的空格.

public static void main(String[] args)
String a = " aaaa aaaa ";
a = a.trim();
while(a.startsWith(" "))
a = a.substring(1,a.length()).trim();

while(a.endsWith(" "))
a = a.substring(0,a.length()-1).trim();

System.out.println(a);
本回答被提问者采纳
参考技术C 变通一下不行啊

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字符串中,只要有连续的空格就去掉且但要保留一个空格;如果只是一个空格就不用处理;怎么实现?

怎么去除一个字符串的前后空格

在java中的如何对去除String对象中的空格

切片去除前后的空格

JS中如何去除字符串的空格

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