创建数值型的Range、List和Array
有的时候,我们需要创建一个范围、列表或数字数组,用于for循环或测试目的。这时可以使用Int类的to方法创建一个包含所需元素的范围,代码如下:
// 创建数值的Range、List和Array
val r1 = 1 to 10
r1.foreach(println)
// 设置步长
val r2 = 1 to 10 by 2
r2.foreach(println)
val r3 = 1 to 10 by 3
r3.foreach(println)
// 常用于for循环
for (i <- 1 to 5) println(i)
// 也可用until代替to
for (i <- 1 until 5) println(i)
// 将一个Range转为Array或List
val xArray = 1 to 10 toArray
// val xArray = (1 to 10).toArray
val xList = 1 to 10 toList
// val xList = (1 to 10).toList
// 创建随机长度范围
var range1 = 0 to scala.util.Random.nextInt(10)
// 利用for/yield,不仅仅可以生成数值序列
var range2 = for (i <- 1 to 5) yield i * 2
var range3 = for (i <- 1 to 5) yield i.toDouble
格式化数值和货币
通常在打印输出时,希望格式化数字或货币以控制小数点和逗号。那么对于基本的数字格式,可使用f字符串插值器:
// 格式化数值和货币
val pi = scala.math.Pi
println(f"$pi%1.5f")
println(f"$pi%1.5f")
println(f"$pi%1.2f")
println(f"$pi%06.2f")
向数字添加千分位(逗号)的一个简单方法是使用java.text.NumberFormat类的getIntegerInstance方法。
// 使用java.text.NumberFormat类的getIntegerInstance方法
val formatter = java.text.NumberFormat.getIntegerInstance
println(formatter.format(10000)) // 10,000
println(formatter.format(1000000)) // 1,000,000
也可以用getIntegerInstance方法设置语言环境:
// 还可以指定地区
val locale = new java.util.Locale("de", "DE")
val formatter2 = java.text.NumberFormat.getIntegerInstance(locale)
println(formatter2.format(1000000)) // 1.000.000
可以使用getInstance返回的格式化器处理浮点值:
// 处理浮点值
val formatter3 = java.text.NumberFormat.getInstance
println(formatter3.format(10000.33)) // 10,000.33
对于货币输出,使用getCurrencyInstance返回的格式化器:
// 处理货币
val formatter4 = java.text.NumberFormat.getCurrencyInstance
println(formatter4.format(123.456789)) // ¥123.46
println(formatter4.format(1234.56789)) // ¥1,234.57
println(formatter4.format(12345.6789)) // ¥12,345.68
println(formatter4.format(123456.789)) // ¥123,456.79
下面这种方法用来处理国际货币:
// 处理国际化货币
import java.util.{ Currency, Locale }
val de = Currency.getInstance(new Locale("de", "DE")) // de: java.util.Currency = EUR
formatter4.setCurrency(de)
println(formatter4.format(123456.789)) // EUR123,456.79
© 版权声明
本站网络名称:
知趣
本站永久网址:
https://www.qubaa.top
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长删除处理。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
暂无评论内容