我有一个像这样的字符串:
mysz = "name=john age=13 year=2001";
我想删除字符串中的空格。 我试过trim()
但这只删除了整个字符串前后的空格。 我也尝试了replaceAll("\\\\W", "")
但是=
也被删除了。
如何使用以下方法实现字符串:
mysz2 = "name=johnage=13year=2001"
如果您更喜欢实用程序类而不是正则表达式,则在Spring Framework中的StringUtils中有一个trimAllWhitespace(String)方法。
在Java中,我们可以执行以下操作:
String pattern="[\\s]";
String replace="";
part="name=john age=13 year=2001";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(part);
part=m.replaceAll(replace);
System.out.println(part);
为此,您需要将以下软件包导入程序:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
希望对您有帮助。
该问题的最正确答案是:
String mysz2 = mysz.replaceAll("\\s","");
我只是从其他答案中改编了这段代码。 我发布它的原因是,除了确切地是问题所要求的内容之外,它还表明结果以新字符串的形式返回,原始字符串并未像某些答案所暗示的那样被修改 。
(经验丰富的Java开发人员可能会说“当然,您实际上不能修改String”,但是此问题的目标读者可能不知道这一点。)
mysz = mysz.replace(" ","");
首先有空间,其次没有空间。
然后就完成了。
你应该用
s.replaceAll("\\s+", "");
代替:
s.replaceAll("\\s", "");
这样,它将在每个字符串之间使用多个空格。 上述正则表达式中的+号表示“一个或多个\\ s”
public static void main(String[] args) {
String s = "name=john age=13 year=2001";
String t = s.replaceAll(" ", "");
System.out.println("s: " + s + ", t: " + t);
}
Output:
s: name=john age=13 year=2001, t: name=johnage=13year=2001
处理字符串操作的一种方法是来自Apache commons的StringUtils。
String withoutWhitespace = StringUtils.deleteWhitespace(whitespaces);
你可以在这里找到它。 commons-lang包含更多内容,并且得到了很好的支持。
如果您还需要删除牢不可破的空间,则可以这样升级代码:
st.replaceAll("[\\s|\\u00A0]+", "");
有很多方法可以解决此问题。 您可以使用字符串的拆分功能或替换功能。
有关更多信息,请参见smilliar问题http://techno-terminal.blogspot.in/2015/10/how-to-remove-spaces-from-given-string.html
import java.util.*;
public class RemoveSpace {
public static void main(String[] args) {
String mysz = "name=john age=13 year=2001";
Scanner scan = new Scanner(mysz);
String result = "";
while(scan.hasNext()) {
result += scan.next();
}
System.out.println(result);
}
}
您可以这样简单地通过
String newMysz = mysz.replace(" ","");
String a="string with multi spaces ";
//or this
String b= a.replaceAll("\\s+"," ");
String c= a.replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ");
//任何空格都可以正常工作*不要忘记字符串b中的空格
使用Pattern And Matcher,它更加动态。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RemovingSpace {
/**
* @param args
* Removing Space Using Matcher
*/
public static void main(String[] args) {
String str= "jld fdkjg jfdg ";
String pattern="[\\s]";
String replace="";
Pattern p= Pattern.compile(pattern);
Matcher m=p.matcher(str);
str=m.replaceAll(replace);
System.out.println(str);
}
}
最简单的方法是使用commons-lang3
库的org.apache.commons.lang3.StringUtils
类,例如“ commons-lang3-3.1.jar
”。
在输入字符串上使用静态方法“ StringUtils.deleteWhitespace(String str)
”,从其中删除所有空格后,它将返回一个字符串。 我尝试了您的示例字符串“ name=john age=13 year=2001
”,它精确地返回了您想要的字符串-“ name=johnage=13year=2001
”。 希望这可以帮助。
使用mysz.replaceAll("\\\\s+","");
您可以在不使用replaceAll()或Java中的任何预定义方法的情况下实现此目的。 这种方式是首选: -
public class RemoveSpacesFromString {
public static void main(String[] args) {
// TODO Auto-generated method stub
String newString;
String str = "prashant is good" ;
int i;
char[] strArray = str.toCharArray();
StringBuffer sb = new StringBuffer();
for(i = 0; i
要删除示例中的空格,这是另一种方法:
String mysz = "name=john age=13 year=2001";
String[] test = mysz.split(" ");
mysz = String.join("", mysz);
这样做是将其转换为一个以空格为分隔符的数组,然后将数组中的各项组合在一起而没有空格。
它工作得很好并且易于理解。
使用apache字符串util类最好避免NullPointerException
org.apache.commons.lang3.StringUtils.replace("abc def ", " ", "")
输出量
abcdef
public static String removeWhiteSpaces(String str){
String s = "";
char[] arr = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
int temp = arr[i];
if(temp != 32 && temp != 9) { // 32 ASCII for space and 9 is for Tab
s += arr[i];
}
}
return s;
}
这可能会有所帮助。
将每组文本分成自己的子字符串,然后连接这些子字符串:
public Address(String street, String city, String state, String zip ) {
this.street = street;
this.city = city;
// Now checking to make sure that state has no spaces...
int position = state.indexOf(" ");
if(position >=0) {
//now putting state back together if it has spaces...
state = state.substring(0, position) + state.substring(position + 1);
}
}
可以使用Character Class中的isWhitespace函数删除空格。
public static void main(String[] args) {
String withSpace = "Remove white space from line";
StringBuilder removeSpace = new StringBuilder();
for (int i = 0; i
字符串中也存在其他空格字符。因此,我们可能需要从字符串中替换空格字符。
例:无间断空间,3个电磁区,标点空间
这是空格char的列表http://jkorpela.fi/chars/spaces.html
所以我们需要修改
\\ u2004我们用于三个PER-EM空间
s.replaceAll(“ [\\ u0020 \\ u2004]”,“”)
在Kotlin中使用st.replaceAll("\\\\s+","")
时,请确保用Regex包装"\\\\s+"
:
"myString".replace(Regex("\\s+"), "")
st.replaceAll("\\\\s+","")
删除所有空格和不可见字符(例如,tab, \\n
)。
st.replaceAll("\\\\s+","")
和st.replaceAll("\\\\s","")
产生相同的结果。
第二个正则表达式比第一个正则表达式快20%,但是随着连续空格数量的增加,第一个正则表达式的性能要好于第二个正则表达式。
将值分配给变量(如果不直接使用):
st = st.replaceAll("\\s+","")
您已经从古塞尔·科卡(Gursel Koca)得到了正确的答案,但是我相信这很有可能不是您真正想做的。 如何解析键值呢?
import java.util.Enumeration;
import java.util.Hashtable;
class SplitIt {
public static void main(String args[]) {
String person = "name=john age=13 year=2001";
for (String p : person.split("\\s")) {
String[] keyValue = p.split("=");
System.out.println(keyValue[0] + " = " + keyValue[1]);
}
}
}
输出:
名字=约翰
年龄= 13
年= 2001
怎么样replaceAll("\\\\s", "")
。 请参考这里 。
replaceAll("\\s","")
\\w
=任何文字字符
\\W
=任何非文字字符(包括标点符号等)
\\s
=空格字符(包括空格,制表符等)
\\S
=任何非空格字符(包括字母和数字,以及标点符号等)
(编辑:如前所述,如果希望\\s
到达正则表达式引擎,则需要转义反斜杠,从而导致\\\\s
。)
\\W
表示“非文字字符”。 空格字符的模式为\\s
。 这在Pattern javadoc中有详细记录 。
您还可以查看下面的Java代码。 以下代码不使用任何“内置”方法。
/**
* Remove all characters from an alphanumeric string.
*/
public class RemoveCharFromAlphanumerics {
public static void main(String[] args) {
String inp = "01239Debashish123Pattn456aik";
char[] out = inp.toCharArray();
int totint=0;
for (int i = 0; i < out.length; i++) {
System.out.println(out[i] + " : " + (int) out[i]);
if ((int) out[i] >= 65 && (int) out[i] <= 122) {
out[i] = ' ';
}
else {
totint+=1;
}
}
System.out.println(String.valueOf(out));
System.out.println(String.valueOf("Length: "+ out.length));
for (int c=0; c= 48 && (int) out[d] <=57 ) {
System.out.println(out[d]);
whitespace[t]= out[d];
t+=1;
}
}
System.out.println("**********");
System.out.println("**********");
System.out.println("The String is: " + String.valueOf(whitespace));
}
}
输入:
String inp = "01239Debashish123Pattn456aik";
输出:
The String is: 01239123456
private String generateAttachName(String fileName, String searchOn, String char1) {
return fileName.replaceAll(searchOn, char1);
}
String fileName= generateAttachName("Hello My Mom","\\s","");
如果要从字符串中删除所有空格:
public String removeSpace(String str) {
String result = "";
for (int i = 0; i < str.length(); i++){
char c = str.charAt(i);
if(c!=' ') {
result += c;
}
}
return result;
}