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:
- Usando el concepto de valores ASCII
- 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.
- Cree dos variables de string y dos punteros, nombre como índice e índice1
- 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.
- 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.
- 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.
- El uso de ambos punteros almacena todos los caracteres en orden inverso en una variable de tercera string denominada medio.
- 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