edutecnica

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