duanchuopi2298 2017-09-19 05:37
浏览 66
已采纳

如何将单个字符转换为单个字节?

I am trying to check if a given character is present in a byte:

//readBuf: []byte
//n: int
for i:=0;i<n;i++{
    if readBuf[i]=="?"{
        return true
    }
}

"?" is of type string, so I am getting an error, since readBuf[i] is a byte. How can I convert "?" to a byte to be able to compare it to readBuf[i]?

It seems that []byte("?")[0] is working (convert the 1-element string to 1-element byte array, the extract the first value), but I am sure this is not the correct way of doing it.

  • 写回答

1条回答 默认 最新

  • dongmo9996 2017-09-19 05:51
    关注

    The rune literal '?' is the untyped integer value of the question mark rune.

    Use bytes.ContainsRune:

    if bytes.ContainsRune(readBuf[:n], '?') {
       return true
    }
    

    Because the character ? is encoded as a single byte in UTF-8, the test can also be written as:

    for _, b := range readBuf[:n] {
        if b =='?'{   
            return true
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘