1. 用正则表达式
import java.util.Scanner;
public class deleteblack {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String string = in.nextLine();
int len = string.length();
string = string.replaceAll("\\s{2,}"," ");
System.out.println(string);
}
}
2. 用char或者stringbuffer来做,主要是看如果当前字符是空格,下一个字符书不是字符。
public static void deleteBlack(String string){
int len = string.length();
int charlen = 0;
int temp = 0;
for(int i = 0; i < len;){
charlen ++;
if(string.charAt(i) == ' '){
temp = i + 1;
while(string.charAt(temp) == ' '){
temp ++;
}
i = temp;
}
else{
i ++;
}
}
int charln = 0;
char[] ch = new char[charlen];
for(int i = 0; i < len;){
ch[charln] = string.charAt(i);
System.out.print(ch[charln]);
charln ++;
if(string.charAt(i) == ' '){
temp = i + 1;
while(string.charAt(temp) == ' '){
temp ++;
}
i = temp;
}
else {
i ++;
}
}
}
附录:
java正则表达式