JAVA字符串中,只要有连续的空格就去掉且但要保留一个空格;如果只是一个空格就不用处理;怎么实现?

举个例子:
String str = "大 家 好 啊";
这里“大家”之间有3个空格,“家好”之间有2个空格,“好啊”之间有1个空格,现在要求是把“大家”和“家好”之间的空格都处理成1个空格,“好啊”之间本身就是一个空格,不用处理;
最终效果就是这样:
String str = "大 家 好 啊";
String keywords = request.getParameter("values").trim();
String result = "";

for(int i = 0; i <= keywords.length(); i++){
for(int j = i + 1; j< keywords.length(); j++){
if(keywords.charAt(i) == ' '){
if(keywords.charAt(j) == ' '){
result = keywords.replace(" ", "");
}
}
}
}
System.out.println(result);
}
-----------------------------
输出结果为:
大家好啊
-----------------------------
请问,你能不能给出代码,或帮我修改下我的代码?

第1个回答  2010-12-16
嗯楼上的方法很有设计思想,呵呵,我也学习了,我编的太繁琐了,
经过各种严密测试,已经通过了,把第一个是空格,最后一个是空格,都测试成功了,呵呵逻辑有些麻烦,看一下吧!
public class AS {
public static void main(String[] args){

String keywords = " he ll o 1 ";
String result = "";
for(int i =0;i<keywords.length();i++){
if(i==0){
result = result+keywords.charAt(i);
}else if(i==(keywords.length()-1)){
if(keywords.charAt(i-1)!=' '){
result = result+keywords.charAt(i);
}
}else if(keywords.charAt(i)==' '&&keywords.charAt(i-1)==' '){
continue;
}else if(keywords.charAt(i)==' ' && keywords.charAt(i+1)==' '){
if(i!=0&&keywords.charAt(i-1)!=' '){
result = result+keywords.charAt(i);
}
}else{
result = result+keywords.charAt(i);
}
}
System.out.println(result);
}

}
相似回答