当前位置: 首页 > 面试题库 >

Go lang等效于JavaScript的charCode()方法

蔚承天
2023-03-14
问题内容

charCodeAt()JavaScript中的方法返回给定索引处字符的数字Unicode值,例如

"s".charCodeAt(0) // returns 115

如何在Go中获取相同字符串/字母的数字unicode值?


问题答案:

Go中的字符类型rune是别名,int32因此它已经是数字,只需打印即可。

您仍然需要一种方法来使角色位于指定位置。最简单的方法是将转换string到一个[]rune你可以索引。要将a转换string为符文,只需使用type
conversion即可[]rune("some string")

fmt.Println([]rune("s")[0])

印刷品:

115

如果希望将其打印为字符,请使用%c格式字符串:

fmt.Println([]rune("absdef")[2])      // Also prints 115
fmt.Printf("%c", []rune("absdef")[2]) // Prints s

还要注意,for rangeon string迭代字符串的符文,因此您也可以使用它。比将整体转换string[]rune

i := 0
for _, r := range "absdef" {
    if i == 2 {
        fmt.Println(r)
        break
    }
    i++
}

请注意,该计数器i必须是一个不同的计数器,它不能是循环迭代变量,因为它for range返回字节位置而不是rune索引(如果stringUTF-8表示中包含多字节字符,则该索引将有所不同)。

将其包装为一个函数:

func charCodeAt(s string, n int) rune {
    i := 0
    for _, r := range s {
        if i == n {
            return r
        }
        i++
    }
    return 0
}

在Go Playground上尝试一下。

还要注意,stringGo中的s作为a存储在内存中,[]byte这是文本的UTF-8编码字节序列(有关更多信息,请阅读博客文章Go中的字符串,字节,符文和字符)。如果您保证string使用的代码少于127个字符,则可以简单地使用字节。那就是string在Go中索引a
索引其字节,因此例如"s"[0]它的字节值's'115

fmt.Println("s"[0])      // Prints 115
fmt.Println("absdef"[2]) // Prints 115


 类似资料:
  • 问题内容: 该表示法是: 实际上不哈希对象;它实际上只是转换为字符串(通过它是一个对象,还是其他各种原始类型的内置转换),然后在“ ”中查找该字符串,而不对其进行哈希处理。也不会检查对象是否相等-如果两个不同的对象具有相同的字符串转换,则它们将彼此覆盖。 鉴于此-在JavaScript中是否有任何有效的hashmap实现?(例如,第二个Google结果产生的实现对任何操作都是O(n)。其他各种结果

  • 问题内容: 问题: 将HTML输入中允许的字符限制为az AZ。 对于业务需求,这需要在KeyPress上完成,以便甚至不允许字符出现在输入中。 Tab,Enter,箭头,退格键,Shift键都是允许的。用户必须能够自由地移入和移出文本框,删除字符等。 这是我的代码的起点… 但是,我在 keyCode中 获得的每个值 都不 对应于我在网络上看到的 任何 字符表。例如,字符“ h”给我返回码104。

  • 问题内容: 好的,这可能只是一个愚蠢的问题,尽管我敢肯定会有很多其他人不时问同样的问题。我,我只是想以任何一种方式100%确定它。有了jQuery,我们都知道精彩之处 但是,假设我要运行一个用标准JavaScript编写且没有库支持的函数,并且我想在页面准备就绪后立即启动一个函数。解决这个问题的正确方法是什么? 我知道我可以做: …或者我可以使用标记: …或者我什至可以尝试在页面底部输入所有内容,

  • 问题内容: 什么是Java的JavaScript等价物 我需要获取一个数组或所有匹配项的列表 例: 给 http://www.w3schools.com/jsref/jsref_match.asp 问题答案: 检查正则表达式教程 您的代码应类似于以下内容:

  • 问题内容: Go中是否有类似java finalize的方法?如果我有一个类似的类型结构 如何确保在垃圾回收对象时关闭文件? 问题答案: iirc。但是它被认为是一件坏事,并且不能保证在程序退出之前就可以运行 编辑:如下所述,当前程序包已在文件上调用。但是,不应该依赖。作为一个示例,我有一个类似文件服务器的应用程序,但我忘记了关闭打开的文件。在GC选取并打开其终结器之前,该过程通常可以获取约300

  • 问题内容: 我在Java中使用以下语句: 请提出等效的C#。 问题答案: 我不知道框架中执行此操作的任何内容,但是实现起来很容易: 或者,如果您要指定计数而不是开始/结束: