Programa Java para intercambiar palabras de esquina e invertir caracteres intermedios de una string

Dada una string que contiene n números de palabras. La tarea es intercambiar las palabras de las esquinas de la string e invertir todos los caracteres del medio de la string.

Input:  "Hello this is the GFG user"
Output: "user GFG eth si siht Hello"
Input:  "Hello Bye"
Output: "Bye Hello"

Métodos:

  1. Usando el concepto de valores ASCII
  2. Usando el método split()

Método 1: Usando el concepto de valores ASCII  

Manejamos la posición del espacio entre las palabras usando valores ASCII. El valor ASCII del espacio es 32.

  1. Cree dos variables de string y dos punteros, nombre como índice e índice1
  2. Itere el primer ciclo usando la variable de dirección de índice hasta el primer espacio y almacene todos los caracteres en una variable de string llamada Primero.
  3. Itere otro bucle en orden inverso usando la variable de dirección index1 hasta el primer espacio y almacene todos los caracteres en otro nombre de variable de string como último.
  4. Ahora, tenemos las variables de dirección index1 e index que apuntan a la siguiente posición inicial y final de los caracteres intermedios de la string dada.
  5. El uso de ambos punteros almacena todos los caracteres en orden inverso en una variable de tercera string denominada medio.
  6. Imprime la última string, luego la string del medio y luego la primera string.

Ejemplo:

Java

// Java Program to Swap Corner Words and Reverse Middle
// Characters
 
// Importing utility classes
import java.util.*;
// Importing input output classes
import java.io.*;
 
// Main class
public class GFG {
 
    // Method 1
    // To swap corners words
    static void swap(String m, int length)
    {
 
        // Declaring string variables to
        // store the first and last characters
        String first = "";
        String last = "";
 
        // Creating first address variable
        // Initially initializing with zero
        int index = 0;
 
        for (index = 0; index < length; ++index) {
 
            // Checking the space
            if (m.charAt(index) == 32) {
                break;
            }
 
            // Storing the last word in the last variable
            last += m.charAt(index);
        }
 
        // Now creating second address variable
        // Initially initializing with zero
        int index1 = 0;
 
        for (index1 = length - 1; index1 >= 0; --index1) {
            if (m.charAt(index1) == 32) {
                break;
            }
 
            // Storing the First word of the given string
            first = m.charAt(index1) + first;
        }
 
        String middle = "";
        for (int i = index1 - 1; i > index; --i) {
            if (m.charAt(i) == 32) {
                middle += " ";
            }
            else {
 
                // Storing all the middle words
                middle += m.charAt(i);
            }
        }
 
        // Print and display all the string variables
        System.out.print(first + " " + middle + " " + last);
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Given custom input string
        String m = "Hello this is the GFG";
 
        // Calculating string length using length() method
        // and storing it in a variable
        int length = m.length();
 
        // Calling the method 1 to swap the words
        // for our custom input string
        swap(m, length);
    }
}
Producción

GFG eht si siht Hello

Método 2: Usar el método split() 

El método string split() divide una string dada alrededor de las coincidencias de la expresión regular dada.

Ilustración:

Input        : 016-78967
Processing    : Regular Expression                               
Output       : {"016", "78967"}

Procedimiento: 

  • Almacene todas las palabras en una array usando el método split().
  • Intercambia el último y el primer elemento de la array.
  • Iterar el bucle desde la segunda posición hasta la última segunda posición.
  • Almacene todos los caracteres en el orden inverso del nombre como la variable del medio.
  • Imprima el primer elemento de la array, luego la variable del medio y luego el último elemento de la array.

Ejemplo: 

Java

// Java Program to Swap Corner Words and Reverse Middle
// Characters
 
// Importing utility classes
// Importing input output classes
import java.io.*;
import java.util.*;
 
// Main class
public class GFG {
 
    // Method 1
    // To swap the words in a string
    static void swap(String m, int length)
    {
        // Storing the words in the array
        String msg[] = m.split(" ");
 
        // Now swap the position of the first and the last
        // character in the string array
        String temp = msg[0];
        msg[0] = msg[msg.length - 1];
        msg[msg.length - 1] = temp;
 
        // Declaring and initializing string for
        // middle string empty middle string
        String mid = "";
 
        for (int i = msg.length - 2; i >= 1; --i) {
            String temp_s = msg[i];
 
            // Now storing the middle words in reverse order
            for (int j = temp_s.length() - 1; j >= 0; --j) {
                mid += temp_s.charAt(j);
            }
            mid += " ";
        }
 
        // Lastly print the swapped and reversed words
        System.out.print(msg[0] + " " + mid + " "
                         + msg[msg.length - 1]);
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Custom input string
        String m = "Hello this is the GFG";
 
        // Calculating length using length() method and
        // storing it
        int length = m.length();
 
        // Calling the method 1 over custom input string to
        // get swapped corner words with reverse middle
        // characters
        swap(m, length);
    }
}
Producción

GFG eht si siht  Hello

Publicación traducida automáticamente

Artículo escrito por zack_aayush y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *