首页 >后端开发 >Golang >如何在 Golang 中删除字符串中的重复空格和空格?

如何在 Golang 中删除字符串中的重复空格和空格?

Barbara Streisand
Barbara Streisand原创
2024-11-15 06:01:02726浏览

How to Remove Duplicated Spaces and Whitespace from Strings in Golang?

从 Golang 中的字符串中删除重复的空格和空格

要从 Golang 中的字符串中删除前导/尾随空格和冗余空格,您可以可以利用字符串package.

  1. 删除前导/尾随空格:

strings.TrimSpace() 函数删除前导和尾随空格,包括换行符和空

trimmedString := strings.TrimSpace(originalString)
  1. 删除多余空格:

要删除多余空格,可以使用 strings.Fields()。此函数根据空白字符拆分字符串,从而生成子字符串切片。

formattedString := strings.Join(strings.Fields(originalString), " ")

处理国际空格字符:

要处理国际空格字符,您可以使用 unicode 支持。以下代码使用 unicode.IsSpace() 函数检查各种空白字符:

func standardizeSpacesUnicode(s string) string {
    var buffer bytes.Buffer
    for _, r := range s {
        if unicode.IsSpace(r) {
            if buffer.Len() == 0 || buffer.Bytes()[buffer.Len()-1] != ' ' {
                buffer.WriteRune(r)
            }
        } else {
            buffer.WriteRune(r)
        }
    }
    return buffer.String()
}

用法示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    tests := []string{
        " Hello,   World  ! ",
        " Hello,\tWorld ! ",
        " \t\n\t Hello,\tWorld\n!\n\t",
        "你好,世界!", // Unicode test
    }

    for _, test := range tests {
        trimmed := strings.TrimSpace(test)
        formatted := strings.Join(strings.Fields(test), " ")
        standardizedUnicode := standardizeSpacesUnicode(test)

        fmt.Println("Original:", test)
        fmt.Println("Trimmed:", trimmed)
        fmt.Println("Formatted:", formatted)
        fmt.Println("Standardized Unicode:", standardizedUnicode)
        fmt.Println()
    }

}

输出:

Original:  Hello,   World  !
Trimmed:  Hello, World !
Formatted:  Hello World !
Standardized Unicode: Hello World !

Original:  Hello,\tWorld !
Trimmed:  Hello, World !
Formatted:  Hello World !
Standardized Unicode: Hello World !

Original:   \t\n\t Hello,\tWorld\n!\n\t
Trimmed:  Hello, World!
Formatted:  Hello World!
Standardized Unicode: Hello World!

Original:  你好,世界!
Trimmed:  你好,世界!
Formatted:  你好 世界!
Standardized Unicode: 你好 世界!

以上是如何在 Golang 中删除字符串中的重复空格和空格?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn