如果我有一个多行字符串,如
this is a line
this is another line
删除空行的最佳方法是什么?我可以通过拆分,迭代和进行条件检查来使其工作,但有更好的方法吗?
答案 0 :(得分:1)
假设您希望将具有空行的相同字符串作为输出删除,我将使用正则表达式:
import (
"fmt"
"regexp"
)
func main() {
var s = `line 1
line 2
line 3`
regex, err := regexp.Compile("\n\n")
if err != nil {
return
}
s = regex.ReplaceAllString(s, "\n")
fmt.Println(s)
}
答案 1 :(得分:1)
类似于ΔλЛ的答案,可以用strings.Replace:
完成func替换(s,old,new string,n int)字符串 Replace返回字符串s的副本,其中前n个非重叠的old实例替换为new。如果old为空,则它在字符串的开头和每个UTF-8序列之后匹配,对k-rune字符串产生最多k + 1个替换。如果n < 0,替换次数没有限制。
package main
import (
"fmt"
"strings"
)
func main() {
var s = `line 1
line 2
line 3`
s = strings.Replace(s, "\n\n", "\n", -1)
fmt.Println(s)
}
答案 2 :(得分:0)
更通用的方法可能就是这样。
package main
import (
"fmt"
"regexp"
"strings"
)
func main() {
s := `
####
####
####
####
`
fmt.Println(regexp.MustCompile(`[\t\r\n]+`).ReplaceAllString(strings.TrimSpace(s), "\n"))
}