Dada una string S que consta de caracteres en mayúsculas y minúsculas. La tarea es ordenar las letras mayúsculas y minúsculas por separado, de modo que si el lugar «i» en la string original tenía un carácter en mayúscula, no debería tener un carácter en minúscula después de ordenarse y viceversa. se describe en la ilustración como se muestra a continuación:
Ilustración:
Entrada: srbDKi Salida: birDKs Procesamiento: después de ordenar, tenemos que colocar los caracteres en minúsculas en minúsculas y mayúsculas en mayúsculas específicas
Acercarse:
- Usaremos dos ArrayList, uno para almacenar los valores en minúsculas y el segundo para almacenar los valores en mayúsculas.
- Después de agregar elementos a las listas, ordenaremos la lista usando el método Collections.sort(list)
- Después de ordenar, recorreremos la string y verificaremos casos específicos y almacenaremos el elemento en la posición correcta
Ejemplo:
Java
// Java Program for Case Specific Sorting // using Collections.sort(list) method // Importing input output classes // Importing utility classes import java.io.*; import java.util.*; class GFG { // Method 1 // To sort the string static String sortString(String str) { // Creating two Arraylist class objects // Declaring object of character type ArrayList<Character> list = new ArrayList<>(); ArrayList<Character> list2 = new ArrayList<>(); // Initially the string is empty String res = ""; // Iterating over the string for (int i = 0; i < str.length(); i++) { // Finding character at indexes // using charAt() method in List object if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z') list.add(str.charAt(i)); if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') list2.add(str.charAt(i)); } // Sorting the Collection interface // using sort() method Collections.sort(list); Collections.sort(list2); int i = 0; int j = 0; // iterating over string using length() method for (int k = 0; k < str.length(); k++) { // If lowercase character encountered if (str.charAt(k) >= 'a' && str.charAt(k) <= 'z') { // Appending them all in beginning of string res += list.get(i); ++i; } // If uppercase character encountered else if (str.charAt(k) >= 'A' && str.charAt(k) <= 'Z') { // Appending them all together after // lowercase is finished in input string res += list2.get(j); ++j; } } return res; } // Method 2 // Main driver method public static void main(String[] args) { // Passing the custom string as input for which we // want case-specific sorting by calling the method // 1 as defined above System.out.println(sortString("defRTSersUXI")); } }
Producción
deeIRSfrsTUX
Publicación traducida automáticamente
Artículo escrito por AakashSingh_17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA