标签: rune

如何返回一个空白符文

我正在查看string.Map必须采用返回符文的映射函数的函数。我想通过调用以下命令来消除解析 false 的符文:unicode.IsPrint()

func Map(mapping func(rune) rune, s string) string

我的函数看起来像这样:

func main() { 
func CleanUp(s string) string {

    clean := func(r rune) rune {
        if unicode.IsPrint(r) || r == rune('\n') {
            return r
        }
        return rune('')
    }

strings.Map(clean, s)
}
Run Code Online (Sandbox Code Playgroud)

它应该清理的东西像这样"helloworld ' \x10""helloworld ' "

rune('')无效。我怎样才能返回一个空白或空的符文?

go rune

5
推荐指数
2
解决办法
4510
查看次数

如何从golang中的一串符文中获取子串?

我找到了这个,https://groups.google.com/forum/#!topic/golang-nuts/YyKlLwuWt3w但据我所知,这些解决方案对我不起作用.

如果你使用将字符串视为slice(str[:20])的方法,它会在字符中间断开,我们得到"ال ".

编辑:我相信我可以编写一个函数并以3的倍数执行,因为符文是int32(32位/(8位/字节)).我首先要检查是否有符文.

unicode go rune

4
推荐指数
2
解决办法
3842
查看次数

如何解码包含反斜杠编码的Unicode字符的字符串?

我有一个字符串存储为a:

a := `M\u00fcnchen`
fmt.Println(a)  // prints "M\u00fcnchen"
b := "M\u00fcnchen"
fmt.Println(b)  // prints "München"
Run Code Online (Sandbox Code Playgroud)

有没有办法可以转换ab

escaping go unicode-escapes rune

4
推荐指数
1
解决办法
1280
查看次数

从符文获取unicode类别

我正在寻找一种RangeTableruneGo中获取unicode category()的方法.例如,角色a映射到Ll类别.该unicode软件包指定了所有类别(http://golang.org/pkg/unicode/#pkg-variables),但我没有看到任何方法从给定的类别中查找类别rune.我是否需要RangeTablerune使用适当的偏移量手动构建?

unicode go rune

3
推荐指数
1
解决办法
322
查看次数

符文切片长度和 RuneCountInString 之间的区别?

我们可以通过获取字符串转换的符文切片的长度来获取字符串中符文的数量。

\n\n
s := "\xe4\xb8\x96\xe7\x95\x8c"\nrunes := []rune(s)\nfmt.Println(len(runes))\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者使用包RuneCountInString中的函数unicode/utf8

\n\n
fmt.Println(utf8.RuneCountInString(s))\n
Run Code Online (Sandbox Code Playgroud)\n\n

两者有什么区别?

\n

utf-8 go rune

3
推荐指数
1
解决办法
2531
查看次数

用于高位表情符号的 Go rune 文字

我们如何使用带有超出我认为代码点 U+265F 的符文文字的表情符号?

a1 := '\u2665'

  • 这有效

a2 := '\u1F3A8'

  • 这会给出错误无效字符文字,不止一个字符。

有没有办法将位置较高的表情符号表示为符文文字?

https://unicode.org/emoji/charts/full-emoji-list.html

unicode go emoji rune

3
推荐指数
1
解决办法
1431
查看次数

不能使用类型[]符文作为附加类型符文

package main

var lettersLower = []rune("abcdefghijklmnopqrstuvwxyz")
var lettersUpper = []rune("ABCDEFGHIJKLMNOPQRSTUVWXYZ")

func main() {
    x := append(lettersLower, lettersUpper)
}
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我怎么能追加lettersLowerlettersUpper

prog.go:7: cannot use lettersUpper (type []rune) as type rune in append
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/ovx_o2rKPC

append go rune

2
推荐指数
1
解决办法
7460
查看次数

哪个更好地获取Golang字符串的最后一个X字符?

当我有一个字符串"hogemogehogemogehogemoge世界世界世界"哪个代码更好,以避免内存分配得到最后的符文?

关于获取Golang String的最后X个字符有类似的问题.

如何获取Golang字符串的最后X个字符?

如果我只是想获得最后一个符文,我想确定哪个是首选的,没有任何额外的操作.

package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {
    // which is more better for memory allocation?
    s := "hogemogehogemogehogemoge??????a"
    getLastRune(s, 3)
    getLastRune2(s, 3)
}

func getLastRune(s string, c int) {
    // DecodeLastRuneInString
    j := len(s)
    for i := 0; i < c && j > 0; i++ {
        _, size := utf8.DecodeLastRuneInString(s[:j])
        j -= size
    }
    lastByRune := s[j:]
    fmt.Println(lastByRune)
}

func getLastRune2(s string, c int) {
    // string -> []rune
    r := …
Run Code Online (Sandbox Code Playgroud)

string utf-8 go rune

2
推荐指数
1
解决办法
329
查看次数

从字符串转换时如何确定 []rune 的容量

有人可以解释为什么我转换相同,当有不同容量string[]rune

看看这个代码

package main

import (
    "fmt"
)

func main() {
    input := "??"
            
    runes := []rune(input)

    fmt.Printf("len %d\n", len(input))
    fmt.Printf("len %d\n", len(runes))
    fmt.Printf("cap %d\n", cap(runes))

    fmt.Println(runes[:3])

}
Run Code Online (Sandbox Code Playgroud)

哪个返回

len 6
len 2
cap 2
panic: runtime error: slice bounds out of range [:3] with capacity 2
Run Code Online (Sandbox Code Playgroud)

但是当评论fmt.Println(runes[:3])它返回时:

len 6
len 2
cap 32
Run Code Online (Sandbox Code Playgroud)

看看 [] 符文容量如何从 2 变为 32。如何?为什么 ?

如果你想测试 =>去游乐场

string casting go rune

2
推荐指数
1
解决办法
96
查看次数

从字符串到符文切片的转换是否会复制?

我正在从 C 背景自学 Go。下面的代码按我的预期工作(前两个Printf()将访问字节,后两个Printf()将访问代码点)。

我不清楚的是这是否涉及任何数据复制。

package main

import "fmt"

var a string

func main() {
    a = "èe"
    fmt.Printf("%d\n", a[0])
    fmt.Printf("%d\n", a[1])
    fmt.Println("")
    fmt.Printf("%d\n", []rune(a)[0])
    fmt.Printf("%d\n", []rune(a)[1])
}
Run Code Online (Sandbox Code Playgroud)

换句话说:

确实[]rune("string")创建了一个符文数组并用对应的符文填充它"string",或者只是编译器弄清楚如何从字符串字节中获取符文?

go rune

2
推荐指数
2
解决办法
87
查看次数

标签 统计

go ×10

rune ×10

unicode ×3

string ×2

utf-8 ×2

append ×1

casting ×1

emoji ×1

escaping ×1

unicode-escapes ×1