加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

基本数据类型和string类型的转换

发布时间:2020-12-15 08:25:07 所属栏目:Java 来源:网络整理
导读:基本数据类型转string类型: 方式1:fmt.Sprintf("%参数",表达式) 【个人习惯这个,灵活】 函数的介绍: func Sprintf func Sprintf(format string,a ...interface{}) string Sprintf根据format参数生成格式化的字符串并返回该字符串 1)参数需要和表达式的

基本数据类型转string类型:

方式1:fmt.Sprintf("%参数",表达式) 【个人习惯这个,灵活】

函数的介绍:

  func Sprintf

    func Sprintf(format string,a ...interface{}) string
    Sprintf根据format参数生成格式化的字符串并返回该字符串

1)参数需要和表达式的数据类型相匹配
2)fmt.Sprintf().. 会返回转换后的字符串
3)案例演示
[[email?protected] shangxuetang]# cat basictype2string.go
package main

import (
"fmt"
_ "unsafe"
)

//演示golang中基本数据练习转成string使用
func main() {

  var num1 int = 99
  var num2 float64 = 23.456
  var b bool = true
  var mychar byte = ‘h‘
  var str string //空的str

  //使用第一种方式来转换 fmt.Sprintf方法

  str = fmt.Sprintf("%d",num1)
  fmt.Printf("str type %T str=%q n",str,str)

  str = fmt.Sprintf("%f",num2)
  fmt.Printf("str type %T str=%q n",str)

  str = fmt.Sprintf("%t",b)
  fmt.Printf("str type %T str=%q n",str)

  str = fmt.Sprintf("%c",mychar)
  fmt.Printf("str type %T str=%q n",str)
}

输出的结果:

[[email?protected] shangxuetang]# go run basictype2string.go
str type string str="99"
str type string str="23.456000"
str type string str="true"
str type string str="h"

?

方式2:使用strconv包的函数

函数介绍:
  func FormatBool(b bool) string

  func FormatFloat(f float64,fmt byte,prec,bitSize int) string

  func FormatInt(i int64,base int) string
  返回i的base进制的字符串表示。base必须在2到36之间,结果中会使用小写字母‘a‘到‘z‘表示大于10的数字。

  func FormatUint(i uint64,base int) string

案例说明:

[[email?protected] shangxuetang]# cat basictype2string2.go
package main

import (
"fmt"
"strconv"
)

func main() {

  //第二种方式 strconv 函数
  var num3 int = 99
  var num4 float64 = 23.456
  var b2 bool = true
  var str string

  str = strconv.FormatInt(int64(num3),10) //这里的10,表示转成10进制
  fmt.Printf("str type %T str=%qn",str)

  //str = strconv.FormatFloat(num4,‘f‘,10,64)
  //说明:‘f‘ 格式 10:表示小数位保留10位 64 :表示这个小数是float64
  str = strconv.FormatFloat(num4,64)
  fmt.Printf("str type %T str=%qn",str)

  str = strconv.FormatBool(b2)
  fmt.Printf("str type %T str=%qn",str)

}

[[email?protected] shangxuetang]# go run basictype2string2.go
str type string str="99"
str type string str="23.4560000000"
str type string str="true"

  //stroconv包中有一个函数Itoa,只能转换int类型的
  //int类型转换string
  var num5 int = 4567
  str = strconv.Itoa(num5)
  fmt.Printf("str type %T str=%qn",str)

  //int64类型是不能转换的,必须先转换成int以后才能转换成字符串
  var num6 = 4567
  str = strconv.Itoa(int(num6)) //先把int64转换成了int类型,然后在转换成string类型。
  fmt.Printf("str type %T str=%qn",str)

?

string类型转换基本数据类型

1)使用strconv包的函数
  func ParseBool(str string) (value bool,err error)
  func ParseFloat(s string,bitSize int) (f float64,err error) //base int是选择几进制的,10进制的就写10就可以
  func ParseInt(s string,base int,bitSize int) (i int64,err error)
  func ParseUint(s string,b int,bigSize int) (n uint64,err error)

  note:因为返回的是int64 或者 float64,如果希望要得到int32,float32等如下处理。
  //如果希望将str-->int32的可以这样处理
  var num5 int32
  num5 = int32(num)


2) 案例演示
[[email?protected] shangxuetang]# cat stringtobasictype.go
package main

import (
"fmt"
"strconv"
)

//演示golang中string类型转成基本数据类型
func main() {

  var str string = "true" //如果这里不是字符串true而是字符串hello的话,运行以后的结果就是false了。
  var b bool //如果这里把b = true的话,运行结果也还是false,说明这里就算是设定了类型也改不了上面的默认值。

  //说明
  //1. strconv.ParseBool(str) 函数会返回两个值(value bool,err error)
  //2. 因为我只想获取到 value bool,不想获取 err 所以使用 _
  b,_ = strconv.ParseBool(str)
  fmt.Printf("b type %T b=%vn",b,b)

  var str2 string = "1234590"
  var n1 int64
  var n2 int
  n1,_ = strconv.ParseInt(str2,64)
  n2 = int(n1)
  fmt.Printf("n1 type %T n1=%vn",n1,n1)
  fmt.Printf("n1 type %T n2=%vn",n2,n2)

  var str3 string = "123.456"
  var f1 float64
  f1,_ = strconv.ParseFloat(str3,64)
  fmt.Printf("n1 type %T f1=%vn",f1,f1)
}


[[email?protected] shangxuetang]# go run stringtobasictype.go
b type bool b=true
n1 type int64 n1=1234590
n1 type int n2=1234590
n1 type float64 f1=123.456


注意事项:

  在将string类型转成基本数据类型时,要确保string类型能够转成有效的数据,比如我们可以把“123”,转成一个整数,但是不能把“hello” 转成一个整数,如果这样做,golang直接将其转成0。其他类型也是一样的道理,float =》0, bool=》false。

var str4 string = "hello" var n3 int64 = 11 n3,_ = strconv.ParseInt(str4,64) fmt.Printf("n3 type %T n3=%vn",n3,n3) //n3 = 0 //默认值

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读