Esercizio 3
Acquisire una stringa di caratteri, contenente pure degli spazi. Scrivere un procedimento tale che, ogni volta che viene trovato uno spazio, vengano soppressi eventuali altri spazi contigui (due o piu'). Ad esempio, se l'utente inserisce la stringa
"Oggi è una   ; bella giornata... di pioggia!!!"
la stringa risultante sarà
" Oggi è una bella giornata... di pioggia!!!"
Per questo tipo di problema possono essere scritte almeno due versioni, entrambe gestite dal BufferedReader per lo stream di input.
Versione con le espressioni regolari
import java.io.*;class spaziRegEx {
public static void main (String args []) throws IOException {
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader h= new BufferedReader(input);
String st;
System.out.print("vai:");
st=h.readLine();
System.out.println( elimina(st) );
}//fine main
static String elimina(String s){
s=s.replaceAll(" +"," " );
return s;
}//fine elimina
}// fine classe
Versione con lo StringBuffer
import java.io.*;class spaziRegEx {
public static void main (String args []) throws IOException {
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader h= new BufferedReader(input);
String st;
System.out.print("vai:");
st=h.readLine();
System.out.println( elimina(st) );
}//fine main
static String elimina(String s){
int i=0;
StringBuffer sb=new StringBuffer();
sb.append(s);
do{
if(sb.charAt(i)==' ' && sb.charAt(i+1)==' ')
sb.deleteCharAt(i);
else i++;
}while(i < sb.length());
s=sb.toString();
return s;
}//fine elimina
}// fine classe