C'è un problema nel codice di minomic, che riguarda il trattamento delle cifre. Se la frase contiene dei numeri, questi non vengono riportati nell'output. Ovviamente, tutto dipende da come debba essere trattato questo "particolare" caso.
Ad ogni modo, dò una soluzione alternativa:
codice:
public class DividiParole {
public static void main(String[] args) {
Scanner s = null;
try {
s = new Scanner( System.in );
String frase = s.nextLine();
String[] parole = frase.split("\\s");
for(String str : parole) {
System.out.println( str );
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (s != null) {
try { s.close(); } catch (Exception e) { }
}
}
}
}
Se i numeri (o le parole contenenti numeri) non devono essere considerati per l'output, la modifica è irrisoria:
codice:
public class DividiParole {
public static void main(String[] args) {
Scanner s = null;
try {
s = new Scanner( System.in );
String frase = s.nextLine();
String[] parole = frase.split("\\s");
for(String str : parole) {
if ( !str.matches(".*\\d.*") ) System.out.println( str );
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (s != null) {
try { s.close(); } catch (Exception e) { }
}
}
}
}
Se i simboli di punteggiatura devono essere trattati in modo diverso occorre apportare ulteriori modifiche al codice.
Ovviamente il mio codice presuppone che si conoscano le RegEx.
Ciao.