Mueva todos los caracteres especiales al final de la String

En este artículo, aprenderemos cómo mover todos los caracteres especiales al final de la string.
Ejemplos: 
 

Entrada: !@$%^&*AJAY 
Salida: AJAY!@$%^&*
Entrada: Geeksf!@orgeek@s A#$c%o^computer s****cience p#o@rtal for@r ge %eks 
Salida: Geeksforgeeks ¡Un portal de informática para geeks!@@#$%^****#@@%
 

Requisito previo: Expresiones regulares en Java
La idea es recorrer la string de entrada y mantener dos strings, una string que contiene caracteres normales (a, A, 1, ‘ ‘, etc.) y otra string que mantiene caracteres especiales (@, $, etc.) . Finalmente, concatene las dos strings y regrese.
Aquí está la implementación del enfoque anterior. 
 

C++

// C++ program move all special char to the end of the string
 
#include <bits/stdc++.h>
using namespace std;
 
// Function return a string with all special
// chars to the end
string moveAllSC(string str)
{
    // Take length of string
    int len = str.length();
 
    // traverse string
    string res1 = "", res2 = "";
    for (int i = 0; i < len; i++)
    {
        char c = str.at(i);
 
        // check char at index i is a special char
        if (isalnum(c) || c == ' ')
            res1 += c;
        else
            res2 += c;
    }
 
    return res1 + res2;
}
 
// Driver code
int main()
{
    string str1("Geeksf!@orgeek@s A#$ c%o^mputer");
    string str2(" s****cience p#o@rtal fo@r ge%eks");
    string str = str1 + str2;
    cout << moveAllSC(str) << endl;
    return 0;
}
 
// This code is contributed by
// sanjeev2552

Java

// Java program move all special char to the end of the string
class GFG1 {
 
    // Function return a string with all special
    // chars to the end
    static String moveAllSC(String str)
    {
        // Take length of string
        int len = str.length();
 
        // regular expression for check char is special
        // or not.
        String regx = "[a-zA-Z0-9\\s+]";
 
        // traverse string
        String res1 = "", res2 = "";
        for (int i = 0; i < len; i++) {
         
            char c = str.charAt(i);
 
            // check char at index i is a special char
            if (String.valueOf(c).matches(regx))
               res1 = res1 + c;
            else
               res2 = res2 + c;
        }
        return res1 + res2;
    }
 
    public static void main(String args[])
    {
        String str = "Geeksf!@orgeek@s A#$ c%o^mputer"
                     + " s****cience p#o@rtal fo@r ge%eks";
        System.out.println(moveAllSC(str));
    }
}

Python3

# Python3 program move all special char
# to the end of the string
 
# Function return a string with all
# special chars to the end
def moveAllSC(string):
     
    # Take length of string
    length = len(string)
 
    # Traverse string
    res1, res2 = "", ""
    for i in range(0, length):
         
        c = string[i]
 
        # check char at index i is a special char
        if c.isalnum() or c == " ":
            res1 = res1 + c
        else:
            res2 = res2 + c
         
    return res1 + res2
     
# Driver Code
if __name__ == "__main__":
     
    string = "Geeksf!@orgeek@s A#$ c%o^mputer" \
            +" s****cience p#o@rtal fo@r ge%eks"
     
    print(moveAllSC(string))
     
# This code is contributed by Rituraj Jain

C#

// C# program move all special char
// to the end of the string
using System;
using System.Text.RegularExpressions;
 
class GFG
{
 
    // Function return a string with all
    // special chars to the end
    static String moveAllSC(String str)
    {
        // Take length of string
        int len = str.Length;
 
        // regular expression to check
        // char is special or not.
        var regx = new Regex("[a-zA-Z0-9\\s+]");
 
        // traverse string
        String res1 = "", res2 = "";
        for (int i = 0; i < len; i++)
        {
            char c = str[i];
 
            // check char at index i is a special char
            if (regx.IsMatch(c.ToString()))
                res1 = res1 + c;
            else
                res2 = res2 + c;
        }
        return res1 + res2;
    }
 
    public static void Main(String []args)
    {
        String str = "Geeksf!@orgeek@s A#$ c%o^mputer" +
                     " s****cience p#o@rtal fo@r ge%eks";
        Console.WriteLine(moveAllSC(str));
    }
}
 
// This code is contributed by PrinciRaj1992

Javascript

<script>
      // JavaScript program move all special char
      // to the end of the string
      // Function return a string with all
      // special chars to the end
      function moveAllSC(str) {
        // Take length of string
        var len = str.length;
 
        // regular expression to check
        // char is special or not.
        var regx = new RegExp("[a-zA-Z0-9\\s+]");
 
        // traverse string
        var res1 = "",
          res2 = "";
        for (var i = 0; i < len; i++) {
          var c = str[i].toString();
          // check char at index i is a special char
          if (regx.test(c)) res1 = res1 + c;
          else res2 = res2 + c;
        }
        return res1 + res2;
      }
 
      var str =
        "Geeksf!@orgeek@s A#$ c%o^mputer" + " s****cience p#o@rtal fo@r ge%eks";
      document.write(moveAllSC(str));
    </script>
Producción: 

Geeksforgeeks A computer science portal for geeks!@@#$%^****#@@%

 

Complejidad de tiempo: O (N), ya que estamos usando un bucle para atravesar N veces. Donde N es la longitud de la string.

Espacio auxiliar: O(N), ya que estamos usando espacio adicional para la string res1 y res2. Donde N es la longitud de la string.

Publicación traducida automáticamente

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