【go】rune类型

在这里插入图片描述

package main

import (
	"fmt"
	"unicode/utf8"
)

func main() {
	s:="HDBGZ你好!"
	fmt.Println(len(s)) //14
	//打印具体的字节数字
	for _,b:=range []byte(s){
		fmt.Printf("%x ",b) //UTF-8类型
		// 每个中文占3个字节
		// 48 44 42 47 5a e4 bd a0 e5 a5 bd ef bc 81
	}
	fmt.Println()

	for i,ch:=range s{
		fmt.Printf("(%d %X)",i,ch) //ch是个rune类型
		//(0 48)(1 44)(2 42)(3 47)(4 5A)(5 4F60)(8 597D)(11 FF01)
	}
	fmt.Println()
	fmt.Println("Rune count:",	utf8.RuneCountInString(s)) //获取utf-8数字的个数.//8
	//输出字节
	bytes :=[]byte(s)
	for len(bytes)>0{
		ch,size:=utf8.DecodeRune(bytes) //一个字符一个字符拿出来 //字符,长度
		bytes=bytes[size:]
		fmt.Printf("%c ",ch) //H D B G Z 你 好 !
	}
	for i,ch := range []rune(s){
		fmt.Printf("(%d %c)",i,ch) //(0 H)(1 D)(2 B)(3 G)(4 Z)(5 你)(6 好)(7 !)
	}



}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值