[英]How do I remove all whitespaces from a string?
我正在尝试从字符串中删除所有空格。 我用谷歌搜索了很多,发现只有replaceAll()
方法用于删除空格。 但是,在我为在线课程做的作业中,它说使用replace()
方法删除所有空格并使用\\n
表示换行符,使用\\t
表示制表符。 我试过了,这是我的代码:
public static String removeWhitespace(String s) {
String gtg = s.replace(' ', '');
gtg = s.replace('\t', '');
gtg = s.replace('\n', '');
return gtg;
}
编译后,我收到错误消息:
Error:(12, 37) java: empty character literal
Error:(13, 37) java: empty character literal
Error:(14, 37) java: empty character literal
所有 3 都指的是public static String removeWhitespace(String s)
的上述replace()
代码。 如果有人指出我做错了什么,我将不胜感激。
replace()
有两种风格 - 一种采用字符,一种采用字符串。 您正在使用 char 类型,这就是您不能指定“无”字符的原因。
使用字符串版本:
gtg = gtg.replace("\t", "");
还要注意我在那里更正的错误:您的代码一遍又一遍地替换原始字符串中的字符,因此只会影响最后一次替换。
你可以只编码这个:
public static String removeWhitespace(String s) {
return s.replaceAll("\\s", ""); // use regex
}
试试这个代码,
public class Main {
public static void main(String[] args) throws Exception {
String s = " Test example hello string replace enjoy hh ";
System.out.println("Original String : "+s);
s = s.replace(" ", "");
System.out.println("Final String Without Spaces : "+s);
}
}
输出 :
Original String : Test example hello string replace enjoy hh
Final String Without Spaces : Testexamplehellostringreplaceenjoyhh
另一种使用 char 数组的方法:
public class Main {
public static void main(String[] args) throws Exception {
String s = " Test example hello string replace enjoy hh ";
System.out.println("Original String : "+s);
String ss = removeWhitespace(s);
System.out.println("Final String Without Spaces : "+ss);
}
public static String removeWhitespace(String s) {
char[] charArray = s.toCharArray();
String gtg = "";
for(int i =0; i<charArray.length; i++){
if ((charArray[i] != ' ') && (charArray[i] != '\t') &&(charArray[i] != '\n')) {
gtg = gtg + charArray[i];
}
}
return gtg;
}
}
输出 :
Original String : Test example hello string replace enjoy hh
Final String Without Spaces : Testexamplehellostringreplaceenjoyhh
如果你想为replace(char,char)
方法指定一个空字符,你应该这样做:
public static String removeWhitespace(String s) {
// decimal format, or hexadecimal format
return s.replace(' ', (char) 0)
.replace('\f', (char) 0)
.replace('\n', (char) 0)
.replace('\r', '\u0000')
.replace('\t', '\u0000');
}
但是空字符仍然是字符,因此最好为replace(CharSequence,CharSequence)
方法指定一个空字符串以删除这些字符:
public static String removeWhitespace(String s) {
return s.replace(" ", "")
.replace("\f", "")
.replace("\n", "")
.replace("\r", "")
.replace("\t", "");
}
为了简化此代码,您可以为replaceAll(String,String)
方法指定一个正则表达式以删除所有空白字符:
public static String removeWhitespace(String s) {
return s.replaceAll("\\s", "");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.