Eliminar los ceros a la izquierda de un Número dado como una string

Dada la string numérica str , la tarea es eliminar todos los ceros iniciales de una string dada. Si la string contiene solo ceros , imprima un solo «0» .

Ejemplos:

Entrada: str = “0001234” 
Salida: 1234 
Explicación: 
La eliminación de la substring inicial “000” modifica la string a “1234”. 
Por lo tanto, la respuesta final es «1234».

Entrada: str = “00000000” 
Salida:
Explicación: 
No hay números excepto 0

Enfoque ingenuo: 
el enfoque más simple para resolver el problema es recorrer la string hasta el primer carácter distinto de cero presente en la string y almacenar la string restante a partir de ese índice como respuesta. Si se recorre toda la string, significa que todos los caracteres de la string son ‘0’ . Para este caso, guarde “0” como respuesta. Imprime la respuesta final. 

A continuación se muestra la implementación de la idea anterior:

Java

// Java Program to remove all the leading
//zeros from a given numeric string
import java.io.*;
 
class GFG
{
     
    // Function to remove the leading zeros
    static String removeLeadingZeros(String num)
    {
        //traverse the entire string
        for(int i=0;i<num.length();i++){
             
            //check for the first non-zero character
            if(num.charAt(i)!='0'){
                //return the remaining string
                String res = num.substring(i);
                return res;
            }
        }
         
        //If the entire string is traversed
        //that means it didn't have a single
        //non-zero character, hence return "0"
        return "0";
    }
     
    // Driver Code
    public static void main(String[] args)
    {
        String num = "1023";
        System.out.println(removeLeadingZeros(num));
             
        num = "00123";
        System.out.println(removeLeadingZeros(num));
    }
}
 
// This code is contributed by shruti456rawal
Producción

1023
123

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

Enfoque de uso eficiente del espacio: 
siga los pasos a continuación para resolver el problema en el espacio constante usando la expresión regular

  • Cree una expresión regular como se indica a continuación para eliminar los ceros iniciales

regex = “^0+(?!$)” 
donde: 
^0+ coincide con uno o más ceros desde el principio de la string. 
(?!$) es una expresión de anticipación negativa , donde “$” significa el final de la string. 

  • Utilice el método replaceAll() incorporado de la clase String que acepta dos parámetros, una expresión regular y una string de reemplazo .
  • Para eliminar los ceros iniciales, pase Regex como primer parámetro y una string vacía como segundo parámetro .
  • Este método reemplaza el valor coincidente con la string dada.

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

C++

// C++ Program to implement
// the above approach
#include <iostream>
#include <regex>
using namespace std;
 
// Function to remove all leading
// zeros from a given string
void removeLeadingZeros(string str)
{
    // Regex to remove leading
    // zeros from a string
    const regex pattern("^0+(?!$)");
 
    // Replaces the matched
    // value with given string
    str = regex_replace(str, pattern, "");
    cout << str;
}
 
// Driver Code
int main()
{
    string str = "0001234";
    removeLeadingZeros(str);
    return 0;
}

Java

// Java Program to implement
// the above approach
import java.util.regex.*;
class GFG
{
 
    // Function to remove all leading
    // zeros from a given string
    public static void removeLeadingZeros(String str)
    {
 
        // Regex to remove leading
        // zeros from a string
        String regex = "^0+(?!$)";
 
        // Replaces the matched
        // value with given string
        str = str.replaceAll(regex, "");
 
        System.out.println(str);
    }
 
    // Driver Code
    public static void main(String args[])
    {
        String str = "0001234";
 
        removeLeadingZeros(str);
    }
}

Python3

# Python3 Program to implement
# the above approach
import re
 
# Function to remove all leading
# zeros from a given string
def removeLeadingZeros(str):
 
    # Regex to remove leading
    # zeros from a string
    regex = "^0+(?!$)"
 
    # Replaces the matched
    # value with given string
    str = re.sub(regex, "", str)
 
    print(str)
 
# Driver Code
str = "0001234"
removeLeadingZeros(str)
 
# This code is contributed by avanitrachhadiya2155

C#

// C# program to implement
// the above approach
using System;
using System.Text.RegularExpressions;
 
class GFG{
 
// Function to remove all leading
// zeros from a given string
public static void removeLeadingZeros(string str)
{
     
    // Regex to remove leading
    // zeros from a string
    string regex = "^0+(?!$)";
 
    // Replaces the matched
    // value with given string
    str = Regex.Replace(str, regex, "");
 
    Console.WriteLine(str);
}
 
// Driver Code
public static void Main(string[] args)
{
    string str = "0001234";
 
    removeLeadingZeros(str);
}
}
 
// This code is contributed by ukasp

Javascript

<script>
// Javascript Program to implement
// the above approach
 
// Function to remove all leading
    // zeros from a given string
function removeLeadingZeros(str)
{
    // Regex to remove leading
        // zeros from a string
        const regex = new RegExp("^0+(?!$)",'g');
  
        // Replaces the matched
        // value with given string
        str = str.replaceAll(regex, "");
  
        document.write(str);
}
 
// Driver Code
let str = "0001234";
  
removeLeadingZeros(str);
 
// This code is contributed by unknown2108
</script>
Producción

1234

Complejidad de tiempo: O(N), donde N es la longitud de la string. 
Espacio Auxiliar: O(1)

Enfoque específico de Java: consulte este artículo para conocer el enfoque específico de Java mediante StringBuffer .

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 *