JAVA中如何去除字符串前后的全角空格(当中保留)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中如何去除字符串前后的全角空格(当中保留)?相关的知识,希望对你有一定的参考价值。
JAVA中如何去除字符串前后的全角空格(当中保留)?
string.trim()方法只能去除字符串前后的半角空格,我想要一个方法,同时去除字符串前后的半角空格以及全角空格!~
请求各位大大们帮帮忙啊!!!
能不能说得具体点?
最好能直接给出方法,谢谢!
另外,我需要保留字符串中间的半/全角空格,谢谢!~
再次声明一下,中间的半/全角空格是要保留的
dadao3002的方法并没有对中间的半/全角空格进行保留
但是仍然非常感谢您!~
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中如何去除字符串前后的全角空格(当中保留)?的主要内容,如果未能解决你的问题,请参考以下文章