迭代go字符串并在cha中制作字符串

时间:2013-06-26 07:50:40

标签: string go

我开始学习go,我想实现一些算法。我可以迭代字符串然后获取字符,但这些字符是Unicode数字。

如何将chars连接成字符串?你有一些参考吗?我无法在官方页面找到关于原语的任何内容。

4 个答案:

答案 0 :(得分:7)

使用range迭代字符串可以获得Unicode字符 使用索引迭代字符串会给出字节。请参阅规格 runesstrings以及conversions

正如The New Idiot所提到的,可以使用+ operator连接字符串。

从字符到字符串的转换是双重的。你可以转换 字符串的byte(或字节序列):

string(byte('A'))

或者您可以将rune(或符文序列)转换为字符串:

string(rune('µ'))

区别在于符号表示Unicode字符,而字节表示 8位值。

但是我在上面链接的规范的相应部分中提到了所有这些。 这很容易理解,你一定要读它。

答案 1 :(得分:3)

您可以直接将[]rune转换为字符串:

string([]rune{'h', 'e', 'l', 'l', 'o', '☃'})

http://play.golang.org/p/P9vKXlo47c

作为参考,它位于Go规范的转换部分,标题为“转换为字符串类型的转换”部分

http://golang.org/ref/spec#Conversions

对于连接,您可能不希望将每个字符与+运算符连接起来,因为这将在引擎盖下执行大量复制。如果你一次一个地获得符文并且你没有构建符文的中间片段,那么你很可能想要使用bytes.Buffer,它具有WriteRune方法来处理这类事情。 http://golang.org/pkg/bytes/#Buffer.WriteRune

答案 2 :(得分:2)

使用+

str:= str + "a"

您可以尝试这样的事情:

string1 := "abc"
character1 := byte('A')
string1 += string(character1)

即使this answer可能会有所帮助。

答案 3 :(得分:0)

definetly值得一读@尼莫的帖子

使用范围对字符串进行迭代可为您提供Unicode字符,而使用索引对字符串进行迭代可为您提供字节。参见符和字符串以及它们的转换规范。

的字符串可以使用+运算符级联。

从字符到字符串的转换是双重的。可以将字节(或字节序列)转换为字符串:

string(byte('A'))

或者您可以将符文(或符文序列)转换为字符串:

string(rune('µ'))