How to trim white spaces from the slice of bytes in Golang?


When working with data in Golang, it is common to encounter white spaces at the beginning or end of a slice of bytes. These white spaces can cause issues when comparing or manipulating the data, so it's important to know how to remove them. In this article, we'll explore two methods for trimming white spaces from a slice of bytes in Golang.

Method 1: Using the TrimSpace Function

Golang provides a built-in function called TrimSpace that can be used to remove white spaces from a slice of bytes. The TrimSpace function takes a slice of bytes as input and returns a new slice of bytes with all white spaces removed from the beginning and end of the original slice.

Example

Here's an example −

package main

import (
   "fmt"
   "bytes"
)

func main() {
   // create a slice of bytes with white spaces
   data := []byte("   hello world   ")
   
   // trim white spaces using TrimSpace function
   trimmed := bytes.TrimSpace(data)
   
   // print the trimmed slice of bytes
   fmt.Println(string(trimmed))
}

Output

hello world

In this example, we used the TrimSpace function from the bytes package to remove the white spaces from the beginning and end of the slice of bytes. The resulting trimmed slice is then converted to a string and printed to the console.

Method 2: Using a Custom Function

If you need more control over the trimming process, you can create a custom function to remove white spaces from a slice of bytes.

Example

Here's an example −

package main

import (
   "fmt"
)

func trim(data []byte) []byte {
   start := 0
   end := len(data) - 1
   
   // trim white spaces from the beginning of the slice
   for start <= end && data[start] == ' ' {
      start++
   }
   
   // trim white spaces from the end of the slice
   for end >= start && data[end] == ' ' {
      end--
   }
   
   return data[start : end+1]
}

func main() {
   // create a slice of bytes with white spaces
   data := []byte("   hello world   ")

   // trim white spaces using custom function
   trimmed := trim(data)

   // print the trimmed slice of bytes
   fmt.Println(string(trimmed))
}

Output

hello world

In this example, we created a custom function called trim that takes a slice of bytes as input and returns a new slice of bytes with all white spaces removed from the beginning and end of the original slice. We used two for loops to iterate over the slice and remove the white spaces. Finally, we returned the trimmed slice and printed it to the console.

Conclusion

Trimming white spaces from a slice of bytes in Golang is a common task that can be accomplished using either the built-in TrimSpace function or a custom function. Both methods are effective and provide developers with different levels of control over the trimming process. When working with data in Golang, it's important to be able to handle white spaces and ensure that they do not cause issues with your application.

Updated on: 25-Apr-2023

680 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements