Mover todos los dígitos al comienzo de una string dada

Dada una string S , la tarea es mover todos los dígitos presentes en la string, al principio de la string.

Ejemplos:

Entrada: S = «Geeks4forGeeks123»
Salida: 4123GeeksforGeeks
Explicación:
La string dada contiene los dígitos 4, 1, 2 y 3. Mover todos los dígitos al principio de la string modifica la string a «4123GeeksforGeeks».

Entrada: S = « GeeksforGeeks1234 A Computer Science Port7al»
Salida: 1234567GeeksforGeeks A Computer Science Portal

Enfoque: la idea es atravesar la string y mantener dos strings, una string contiene los dígitos y otra string contiene caracteres no numéricos . Al final, agregue ambas strings al resultado en el orden requerido.

A continuación se muestra la implementación del enfoque anterior:

Java

// Java program for the above approach
 
class GFG {
 
    // Function to move all the digit
    // to the beginning of the string
    static void moveAllDigitAtBeginning(
        String str)
    {
        // Calculate the string length
        int len = str.length();
 
        // Stores the digits
        StringBuilder digits
            = new StringBuilder();
 
        // Stores the non-numeric character
        StringBuilder nonNumericCharacter
            = new StringBuilder();
 
        // Traverse the string and
        // check if there is a digit
        for (char c : str.toCharArray()) {
 
            // If character is a digit,
            // add it to the string digits
            if (c >= 48 && c <= 57) {
                digits.append(c);
            }
 
            // Otherwise, add it to the
            // string nonNumericCharacter
            else {
                nonNumericCharacter.append(c);
            }
        }
 
        // Append both the strings
        digits.append(
            nonNumericCharacter.toString());
 
        // Print the string
        System.out.print(
            digits.toString() + " ");
    }
 
    // Driver Code
    public static void main(String args[])
    {
        // Given String str
        String str
            = "GeeksforGeeks123";
        moveAllDigitAtBeginning(str);
    }
}

Javascript

<script>
 
// JavaScript program for the above approach
 
// Function to move all the digit
// to the beginning of the string
function moveAllDigitAtBeginning(str)
{
     
    // Calculate the string length
    var len = str.length;
     
    // Stores the digits
    var digits = [];
     
    // Stores the non-numeric character
    var nonNumericCharacter = [];
     
    // Traverse the string and
    // check if there is a digit
    var temp = str.split("");
    for(const c of temp)
    {
         
        // If character is a digit,
        // add it to the string digits
        if (c.charCodeAt(0) >= 48 &&
            c.charCodeAt(0) <= 57)
        {
            digits.push(c);
        }
     
        // Otherwise, add it to the
        // string nonNumericCharacter
        else
        {
            nonNumericCharacter.push(c);
        }
    }
     
    // Append both the strings
    digits.push(nonNumericCharacter.join(""));
     
    // Print the string
    document.write(digits.join("") + " ");
}
 
// Driver Code
 
// Given String str
var str = "GeeksforGeeks123";
moveAllDigitAtBeginning(str);
 
// This code is contributed by rdtank
 
</script>
Producción: 

123GeeksforGeeks

 

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Enfoque basado en expresiones regulares : el problema dado también se puede resolver usando expresiones regulares y reemplazar todos los caracteres no numéricos con la string vacía (» «) que le da todos los números y reemplazar todos los dígitos con la string vacía (» «) que le da todos los caracteres no numéricos. Al final, concatene la string e imprima el resultado.

A continuación se muestra la implementación del enfoque anterior:

Java

// Java program for the above approach
 
class GFG {
 
    // Function to move all the digit
    // at the beginning of the string
    static void moveAllDigitAtBeginning(
        String str)
    {
        // Replace all the non-numeric
        // characters with " " and
        // replace all digits with " "
        String moveAllDigit = str.replaceAll("\\D+", "")
                              + str.replaceAll("\\d+", "");
 
        // Print the string
        System.out.println(moveAllDigit);
    }
 
    // Driver Code
    public static void main(String args[])
    {
        // Given String str
        String str
            = "GeeksforGeeks1234";
        moveAllDigitAtBeginning(str);
    }
}

C#

// C# program for the above approach
using System;
using System.Text.RegularExpressions;
public class GFG
{
 
    // Function to move all the digit
    // at the beginning of the string
    static void moveAllDigitAtBeginning(
        String str)
    {
       
        // Replace all the non-numeric
        // characters with " " and
        // replace all digits with " "
        String moveAllDigit = Regex.Replace(str, "\\D+", "")
            +Regex.Replace(str, "\\d", "");
       
        // Print the string
        Console.WriteLine(moveAllDigit);
    }
 
    // Driver Code
    public static void Main(String []args)
    {
       
        // Given String str
        String str
            = "GeeksforGeeks1234";
        moveAllDigitAtBeginning(str);
    }
}
 
// This code is contributed by 29AjayKumar
Producción: 

1234GeeksforGeeks

 

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por prashant_srivastava 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 *