martes, 14 de febrero de 2017

Intercambia primera y última palabras de una frase

Crea una función que reciba como parámetro una cadena de texto con una frase y dicha función tendrá que devolver dicha cadena pero invirtiendo la primera y la última palabra.
Desde la función principal tendrás que pedir al usuario que introduzca una frase y le mostrarás dicha frase con la primera y última palabra intercambiada.


Ejemplo:
Introduzca una frase:

> El cielo tiene nubes negras

Resultado: negras cielo tiene nubes El


SOLUCIÓN EN JAVA:
package invierteprimeraultima;

import javax.swing.JOptionPane;


public class InviertePrimeraUltima {

    //Esta función divide la frase en tres partes:
    // 1. primera palabra
    // 2. desde la segunda palabra hasta la penúltima
    // 3. última palabra
    // y devuelve la frase poniendo las partes en el orden 3-2-1
    static String invierte(String cadena){
        String parte1,parte2,parte3;
        
        //Primero comprueba que haya al menos un espacio
        if (cadena.indexOf(" ")!=-1){
            parte1=cadena.substring(0,cadena.indexOf(" "));
            parte2=cadena.substring(cadena.indexOf(" "),cadena.lastIndexOf(" ")+1);
            parte3=cadena.substring(cadena.lastIndexOf(" "),cadena.length());
            
            return parte3+parte2+parte1;
            
        } else {
            //sino hay ningún espacio quiere decir que se trataba de una sola palabra
            //así que la devuelvo tal cual
            return cadena;
        }
        
        
    } 
    public static void main(String[] args) {
        String frase;
        
        frase=JOptionPane.showInputDialog("Introduzca una frase (al menos de dos palabras)");
        System.out.println("Cadena invirtiendo primer y última palabras: "+invierte(frase));
    }
    
}

No hay comentarios:

Publicar un comentario