我有一个这样的字符串:
mysz = "name=john age=13 year=2001";
我想删除字符串中的空格。我尝试了trim(),但这只删除了整个字符串前后的空格。我还尝试了replaceAll(“\\W”,“”),但随后=也被删除。
如何通过以下方式实现字符串:
mysz2 = "name=johnage=13year=2001"
我有一个这样的字符串:
mysz = "name=john age=13 year=2001";
我想删除字符串中的空格。我尝试了trim(),但这只删除了整个字符串前后的空格。我还尝试了replaceAll(“\\W”,“”),但随后=也被删除。
如何通过以下方式实现字符串:
mysz2 = "name=johnage=13year=2001"
当前回答
您可以在不使用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 < strArray.length; i++)
{
if(strArray[i] != ' ' && strArray[i] != '\t')
{
sb.append(strArray[i]);
}
}
System.out.println(sb);
}
}
其他回答
如果您也需要删除不可破坏的空格,可以这样升级代码:
st.replaceAll("[\\s|\\u00A0]+", "");
你应该使用
s.replaceAll("\\s+", "");
而不是:
s.replaceAll("\\s", "");
这样,它将在每个字符串之间使用多个空格。上述正则表达式中的+符号表示“一个或多个\ s”
--\s=任何空格字符(包括空格、制表符等)。为什么这里需要s+?
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 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;
}
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