开发者学堂课程【Scala 核心编程-基础:值类型与 String 相互转换】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/609/detail/8900
值类型与 String 相互转换
目录
一、 介绍
二、 基本类型转 String 类型
三、 String 类型转基本数据类型
四、 注意事项
一、 介绍
在程序开发中,我们经常需要将基本数据类型转成 String 类型。或者将 String 类型转成基本数据类型。
//在运算和拼接以及显示的时候,往往都会把数据类型和字符串做一个转换工作
二、 基本类型转 String 类型
语法:将基本类型的值+“”即可
案例演示:
S
tring
str1=true+
“”;
S
tring
str2=4.5+
“”;
S
tring
str3=100+
“”;
新例子:
package com.atguigu.chapter02.dataconvert
o
bject string2basic {
def main(args:Array[String]):Unit= {
val d1 = 1.2
//基本数据类型转 String
v
al s1= d1 + “”
//以后看到有下划线就表示编译器做了转换,波浪号表示此变量还没有使用,会进行提示,但不会报错。
三、 String 类型转基本数据类型
语法:通过基本类型的 String 的 toXxx 方法即可
案例演示:
“1
2
”
s
1.toInt
s
1.toFloat
s
1.toDouble
s
1.toByte
s
1.toLong
s
1.toShort
//可以使用相应的方法将“12”转换为上述任意类型
新例子:
val s2=”12”
v
al num1=s2.toInt
//将 num1转换为 Int 类型
v
al num2=s2.toByte
//将 num2转换为 Byte 类型
v
al num3=s2.toDouble
//将 num3转换为 Double 类型
v
al num4=s2.toLong
//将 num4转换为 Long 类型
}
四、 注意事项
1. 在将 String 类型转成基本数据类型时,要确保 String 类型能够转成有效数据,比如可以把“123”,转成一个整数,但是不能把“hello”转成一个整数。
例子:
v
al s3=
“h
ello
”
p
rintln(s3.toInt)
运行结果如下:
D:\program\jdk8\bin\java…
Exception in thread “main” java.lang.NumberFormatException: For input string:”hello”
at java.lang.NumberFormatException.forInputstring(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at scala.collection.immutable.stringLike5class.toInt(StringLike.scala:272)
at scala.collection.immutable.StringOps.toInt(StringOps.scala:29)
at com.atguigu.chapter02.dataconvert.string2basic$.main(string2basic.scala:21)
出现报错,hello 抛出异常,也可以根据异常来做一个处理
2. 思考要把“12.5”转成 Int //?
例子:
val s4=
“1
2.5
”
p
rintln(s4.toInt)
//转化为 int
//将12.5转化为 double,无法做 int 类型
//在 scala 中,不是将小数点后的数据进行截取,而是会抛出异常,此时就要保证 string 类型是可以进行转换的
运行结果如下:
D:\program\jdk8\bin\java…
Exception in thread “main” java.lang.NumberFormatException: For input string:”12.5”
at java.lang.NumberFormatException.forInputstring(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at scala.collection.immutable.stringLike5class.toInt(StringLike.scala:272)
at scala.collection.immutable.StringOps.toInt(StringOps.scala:29)
at com.atguigu.chapter02.dataconvert.string2basic$.main(string2basic.scala:25)
at com.atguigu.chapter02.dataconvert.string2basic$.main(string2basic.scala)
输入12.5无法转化为 int 类型
如果转化为 Double 类型,就是正确的:
println(s4.toDouble) //正确