Open In App
Related Articles

Remove spaces from a given string

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Given a string, remove all spaces from the string and return it. 

Input:  "g  eeks   for ge  eeks  "
Output: "geeksforgeeks"

Expected time complexity is O(n) and only one traversal of string. 

We strongly recommend that you click here and practice it, before moving on to the solution.

Below is a Simple Solution 

1) Iterate through all characters of given string, do following
   a) If current character is a space, then move all subsequent
      characters one position back and decrease length of the 
      result string.

Time complexity of above solution is O(n2).

A Better Solution can solve it in O(n) time. The idea is to keep track of count of non-space character seen so far. 

1) Initialize 'count' = 0 (Count of non-space character seen so far)
2) Iterate through all characters of given string, do following
     a) If current character is non-space, then put this character
        at index 'count' and increment 'count'
3) Finally, put '\0' at index 'count'

Below is the implementation of above algorithm. 

C++

// An efficient C++ program to remove all spaces
// from a string
#include <iostream>
using namespace std;
 
// Function to remove all spaces from a given string
void removeSpaces(char *str)
{
    // To keep track of non-space character count
    int count = 0;
 
    // Traverse the given string. If current character
    // is not space, then place it at index 'count++'
    for (int i = 0; str[i]; i++)
        if (str[i] != ' ')
            str[count++] = str[i]; // here count is
                                   // incremented
    str[count] = '\0';
}
 
// Driver program to test above function
int main()
{
    char str[] = "g  eeks   for ge  eeks  ";
    removeSpaces(str);
    cout << str;
    return 0;
}

                    

Java

     
// An efficient Java program to remove all spaces
// from a string
class GFG
{
 
// Function to remove all spaces
// from a given string
static int removeSpaces(char []str)
{
    // To keep track of non-space character count
    int count = 0;
 
    // Traverse the given string.
    // If current character
    // is not space, then place
    // it at index 'count++'
    for (int i = 0; i<str.length; i++)
        if (str[i] != ' ')
            str[count++] = str[i]; // here count is
                                    // incremented
         
    return count;
}
 
// Driver code
public static void main(String[] args)
{
    char str[] = "g eeks for ge eeks ".toCharArray();
    int i = removeSpaces(str);
    System.out.println(String.valueOf(str).subSequence(0, i));
}
}
 
// This code is contributed by Rajput-Ji

                    

Python

# Python program to Remove spaces from a given string
 
# Function to remove all spaces from a given string
def removeSpaces(string):
 
    # To keep track of non-space character count
    count = 0
 
    list = []
 
    # Traverse the given string. If current character
    # is not space, then place it at index 'count++'
    for i in xrange(len(string)):
        if string[i] != ' ':
            list.append(string[i])
 
    return toString(list)
 
# Utility Function
def toString(List):
    return ''.join(List)
 
# Driver program
string = "g  eeks  for ge  eeks  "
print removeSpaces(string)
 
# This code is contributed by Bhavya Jain

                    

C#

// An efficient C# program to remove all
// spaces from a string
using System;
 
class GFG
{
 
// Function to remove all spaces
// from a given string
static int removeSpaces(char []str)
{
    // To keep track of non-space
    // character count
    int count = 0;
 
    // Traverse the given string. If current
    // character is not space, then place
    // it at index 'count++'
    for (int i = 0; i < str.Length; i++)
        if (str[i] != ' ')
            str[count++] = str[i]; // here count is
                                   // incremented
 
    return count;
}
 
// Driver code
public static void Main(String[] args)
{
    char []str = "g eeks for ge eeks ".ToCharArray();
    int i = removeSpaces(str);
    Console.WriteLine(String.Join("", str).Substring(0, i));
}
}
 
// This code is contributed by 29AjayKumar

                    

Javascript

<script>
 
      // An efficient JavaScript program to remove all
      // spaces from a string
       
      // Function to remove all spaces
      // from a given string
      function removeSpaces(str) {
        // To keep track of non-space
        // character count
        var count = 0;
 
        // Traverse the given string. If current
        // character is not space, then place
        // it at index 'count++'
        for (var i = 0; i < str.length; i++)
          if (str[i] !== " ") str[count++] = str[i];
         // here count is
        // incremented
 
        return count;
      }
 
      // Driver code
      var str = "g eeks for ge eeks ".split("");
      var i = removeSpaces(str);
      document.write(str.join("").substring(0, i));
       
</script>

                    

Output
geeksforgeeeks

Time complexity of above solution is O(n) and it does only one traversal of string. 

Auxiliary Space: O(1)
Another solution suggested by Divyam Madaan is to use predefined functions. Here is the implementation: 

C++

// CPP program to Remove spaces
// from a given string
 
#include <iostream>
#include <algorithm>
using namespace std;
 
// Function to remove all spaces from a given string
string removeSpaces(string str)
{
    str.erase(remove(str.begin(), str.end(), ' '), str.end());
    return str;
}
 
// Driver program to test above function
int main()
{
    string str = "g eeks for ge eeks ";
    str = removeSpaces(str);
    cout << str;
    return 0;
}
 
// This code is contributed by Divyam Madaan

                    

Java

// Java program to remove
// all spaces from a string
 
class GFG {
     
    // Function to remove all
    // spaces from a given string
    static String removeSpace(String str)
    {
        str = str.replaceAll("\\s","");
        return str;
    }
 
    // Driver Code
    public static void main(String args[])
    {
        String str = "g eeks for ge eeks ";
        System.out.println(removeSpace(str));
    }
}
 
// This code is contributed by Kanhaiya.

                    

Python

# Python program to Remove spaces from a given string
  
# Function to remove all spaces from a given string
def removeSpaces(string):
    string = string.replace(' ','')
    return string
     
# Driver program
string = "g  eeks  for ge  eeks  "
print(removeSpaces(string))
 
# This code is contributed by Divyam Madaan

                    

C#

// C# program to remove
// all spaces from a string
using System;
 
class GFG
{
     
    // Function to remove all
    // spaces from a given string
    static String removeSpace(String str)
    {
        str = str.Replace(" ","");
        return str;
    }
 
    // Driver Code
    public static void Main()
    {
        String str = "g eeks for ge eeks ";
        Console.WriteLine(removeSpace(str));
    }
}
 
// This code is contributed by
// PrinciRaj1992

                    

Javascript

<script>
// javascript program to remove
// all spaces from a string
    // Function to remove all
    // spaces from a given string
     function removeSpace( str)
     {
        str = str.replace(/\s/g,'')
        return str;
    }
 
    // Driver Code   
        var str = "g eeks for ge eeks ";
        document.write(removeSpace(str));
 
// This code contributed by aashish1995
</script>

                    

Output
geeksforgeeeks

Another method to solve this problem using predefined STL functions like count() ,remove() ,getline() and resize() is also present. Here is the implementation for the same :

C++

#include <bits/stdc++.h>
using namespace std;
int main()
{
    string s = "g e e k s f o r g e e k s";
 
    cout << "string with spaces is " << s << endl;
 
    int l = s.length(); // storing the length of the string
 
    int c
        = count(s.begin(), s.end(),
                ' '); // counting the number of whitespaces
 
    remove(s.begin(), s.end(),
           ' '); // removing all the whitespaces
 
    s.resize(l - c); // resizing the string to l-c
 
    cout << "string without spaces is " << s << endl;
 
    return 0;
}

                    

Java

import java.util.*;
import java.io.*;
 
public class Main {
public static void main(String[] args) {
String s = "g e e k s f o r g e e k s";
System.out.println("string with spaces is " + s);
      int l = s.length(); // storing the length of the string
 
    int c = (int) s.chars().filter(ch -> ch == ' ').count(); // counting the number of whitespaces
 
    s = s.replace(" ", ""); // removing all the whitespaces
 
    s = s.substring(0, l - c); // resizing the string to l-c
 
    System.out.println("string without spaces is " + s);
}
}

                    

C#

// C# program for the above approach
 
using System;
 
public class GFG {
    public static void Main(string[] args) {
        string s = "g e e k s f o r g e e k s";
        Console.WriteLine("string with spaces is " + s);
        int l = s.Length; // storing the length of the string
     
        int c = s.Split(' ').Length - 1; // counting the number of whitespaces
     
        s = s.Replace(" ", ""); // removing all the whitespaces
     
        s = s.Substring(0, l - c); // resizing the string to l-c
     
        Console.WriteLine("string without spaces is " + s);
    }
}
 
// This code is contributed by princekumaras

                    

Python3

s = "g e e k s f o r g e e k s"
 
print("string with spaces is", s)
 
l = len(s)  # storing the length of the string
 
c = s.count(' '# counting the number of whitespaces
 
s = s.replace(' ', '')  # removing all the whitespaces
 
s = s[:l - c]  # resizing the string to l-c
 
print("string without spaces is", s)

                    

Javascript

// JavaScript program for the above approach
 
let s = "g e e k s f o r g e e k s";
console.log("string with spaces is " + s);
 
let l = s.length; // storing the length of the string
 
let c = s.split(' ').length - 1; // counting the number of whitespaces
 
s = s.replace(/\s/g, ""); // removing all the whitespaces
 
s = s.substring(0, l - c); // resizing the string to l-c
 
console.log("string without spaces is " + s);

                    

Output
string with spaces is g e e k s f o r g e e k s
string without spaces is geeksforgeeks

Time Complexity : O(N), N is length of given string.

Auxiliary Space : O(1),  since no extra space is used.

Thanks to Souravi Sarkar for suggesting this problem and initial solution. 
Java | Removing whitespaces using Regex



Last Updated : 18 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads