Me gustaría ordenar las palabras de esta String, pero sin recorrerlas con loop, alguna idea.
// METODO MAIN
String cadena = " 345 casas tienes 520 habitaciones 3 balcones"; // ingresada por teclado
String valor = cadena.replaceAll("[^a-zA-Z]"," ");
System.out.println(value);
// RESULTADOS
/*
* " 345 casas tienes 520 habitaciones 3 balcones" // CADENA INGRESADA
* " casas tienes habitaciones balcones" // RESULTADO ELIMINANDO NÚMEROS
* "casas tienes habitaciones balcones" // RESULTADO QUE QUIERO CONSEGUIR
*/
Gracias de antemano, y espero que haya una función que las ordene.
Hola.
Cuál es tu idea entonces?.
La expresión regular es solo para reemplazar los números encontrados por algo vacio?, o tendría alguna otra función segun tú?.
Pero no entiendo de que forma necesitas ordenarla ._. porque alfabeticamente tendría que quedar "balcones casas habitaciones tienes"
Saludos.
Esto te sirve?...
/**
* @(#)TestOrdenaPalabras.java
*
* TestOrdenaPalabras application
*
* @author Darhius929
* @version 1.00 2012/12/28
*/
import java.util.Arrays;
public class TestOrdenaPalabras {
public static void main(String[] args) {
new TestOrdenaPalabras();
}
public TestOrdenaPalabras() {
String cadena = " 345 casas tienes 520 habitaciones 3 balcones"; // ingresada por teclado
String expresion = "[0-9 ]+"; //Expresion que toma los numeros y espacios en blanco
cadena = cadena.replaceAll(expresion, " "); //
cadena = cadena.trim(); //Eliminar espacios en blanco al inicio y final de cadena
String [] palabras;
palabras = cadena.split(" ");
Arrays.sort(palabras); //Utilizar el metodo sort de la clase Arrays para ordenar
cadena="";
for(int indice=0; indice<palabras.length; indice++) {
cadena+=palabras[indice]+" ";
}
System.out.println(cadena);
}
}
Saludos.
Sii muy bueno, gracias campeón, ahora voy a tener que necesitar un curso de inglés jejej.
Muchas gracias Darhius.
Y ahora si Feliz Año nuevo tio