Python && JAVA 去除字符串中空格的五种方法

Python && JAVA 去除字符串中空格的五种方法

处理字符串,尤其是处理一些很凌乱的字符串是作为一个 PE,基本上都要面对的事情。就比如去除字符串里那些重复和没必要的空格。

不过,不管这些被风吹散的字符串,有多么的凌乱,在 Python 和Java里总能找到合适的方法将它变得有序起来。

今天这篇文件就针对不同的情景和需要,介绍五种去除字符串中多余空格的方法,

1.去除字符串首尾的空格

去除首位字符串的方法很简单,只需用 strip() 这个函数即可。

quote = "   大河再汹涌,也没有我的情深壮阔。   "
clean_quote = quote.strip()
print(clean_quote)
# 大河再汹涌,也没有我的情深壮阔。

使用strip()函数去除首尾的空格就是这么简单。不过需要注意的是:字符串是不可变的。quote 这个值是不变的,我们需要将结果赋值到新字符串去访问。

strip() 函数还有两个孪生兄弟:

lstrip(): 只去除字符串左边的空格

rstrip(): 只去除字符串结尾处的空格

Method1:去掉首尾空格(JAVA)

String str = "Hello Genius!  ";

System.out.println(str.trim());

2.去除字符串中所有的空格

去除字符串中所有的空格,相当于去除字符串中所有的空字符,可以使用 replace(), 例如:

words = " 在  我耳  边说  出 那句 话  的人,再 也 没   出  现  过 "
clean_words = words.replace(' ', '')
print(clean_words)

# 在我耳边说出那句话的人,再也没出现过

Method2:去掉所有空格,包括首尾、中间(JAVA)

String str = "Hello Genius!  ";

String str2 = str.replaceAll(" ","");
System.out.println(str2);

3. 去除字符串中多余的空格

有时候我们需要去除多余的空格,而不是一股脑的全都去除,针对这种情况我们需要两个函数来配合完成这个任务:

split(): 根据分隔符将字符分割成 list (默认分隔符是空格)

join(): 使用分隔符将列表中的所有项目组合成一个字符串

quote = "  不      是因      为        他不在  了 "
new_quote = ' '.join(quote.split())
print(new_quote)
# 不 是 因 为 他 不 在 了

Method3:去掉所有空格,包括首尾、中间(JAVA)

String str = "Hello Genius!  ";

String str3 = str.replaceAll("+","");
System.out.println(str3);

4.使用正则去除你想去掉的空格

前面三种方法也已经可以处理大部分问题,不过事情有事又是很复杂地,前几种方法处理不了的时候,就需要使用我们的终极武器–正则表达式(RegEx)

例如,如果我们只去除字符串中两个连续的空格,用前面的几个方法就比较难处理,这是使用正则就比较简单:

import re
quote = "  而是 我只  梦见过 他 一次"
new_quote = re.sub(r"\s{2}", "", quote)
print(new_quote)
# 而是 我只梦见过 他 一次

Method4:替换大部分空白字符,不限于空格(JAVA)

 String str = "Hello Genius!  ";

String str3 = str.replaceAll("\\s*","");
System.out.println(str3);

其中,\s可以匹配空格、制表符、换页符等空白字符

5.java去除字符串中的空格、回车、换行符、制表符 (JAVA)

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class StringUtil { 

public static void replaceBlank() 
{ 
   Pattern p = Pattern.compile(“\\s*|\t|\r|\n”); 
   String str="I am a, I am Hello ok, \n new line ffdsa!"; 
   System.out.println("before:"+str); 
   Matcher m = p.matcher(str); 
   String after = m.replaceAll(""); 
   System.out.println("after:"+after); 
} 

public static void main(String[] args) { 
     replaceBlank(); 
   } 

} 

一个单引号变成两个单引号

p = Pattern.compile("\'");
m = p.matcher(columnValue);
columnValue = m.replaceAll("\'\'");

总结

去除字符串的空格,是作为PE的基本操作,有些简单的情况内置函数就可以解决,对于复杂一些的情况,就需要正则表达式这个终极武器。

结语

如果这篇文章对您有所帮助,或者有所启发的话,求一键三连:点赞、评论、收藏➕关注,您的支持是我坚持写作最大的动力。