当前位置: 首页 > article >正文

Scala-字符串(拼接、printf格式化输出等)-用法详解

Scala

在这里插入图片描述


一、 使用 + 号连接字符串

  • 在 Scala 中,+ 运算符实际上会调用 String 类的 concat 方法或者使用字符串的加法操作,生成一个新的字符串。

  • 字符串是不可变的,每次拼接都会创建一个新的字符串。

在这里插入图片描述

Mr. yu

在这里插入图片描述
在这里插入图片描述


  • Tips
    • 性能相对较差,特别是拼接大量字符串时。因为每次拼接都会创建一个新的字符串对象导致频繁的内存分配和垃圾回收(GC)。

二、 使用 printf 格式化字符串

类似于 C 语言中的 printf 函数,也可以用来控制输出的格式,比如指定数字的小数位数、输出的宽度等。

占位符用途示例格式解释示例代码输出示例
%s字符串%s格式化字符串printf("Hello, %s!\n", "yushifu")Hello, yushifu!
%d%i十进制整数%d格式化整数printf("I am %d years old.\n", 30)I am 30 years old.
%f浮动小数(浮点数)%.2f格式化浮动小数printf("Pi is approximately %.2f.\n", 3.14159)Pi is approximately 3.14.
%e%E科学计数法%.2e格式化浮动小数为科学计数法printf("Large number: %.2e\n", 123456.789)Large number: 1.23e+05
%x十六进制数(小写)%x格式化为小写十六进制printf("Hexadecimal: %x\n", 255)Hexadecimal: ff
%X十六进制数(大写)%X格式化为大写十六进制printf("Hexadecimal: %X\n", 255)Hexadecimal: FF
%o八进制数%o格式化为八进制printf("Octal: %o\n", 64)Octal: 100
%c单个字符%c格式化字符printf("Character: %c\n", 'A')Character: A
%%百分号%%输出字面百分号printf("Discount: %d%%\n", 20)Discount: 20%
%5d整数最小宽度 5%5d输出宽度为5的整数,右对齐printf("Number: %5d\n", 42)Number: 42
%-5d整数最小宽度 5,左对齐%-5d输出宽度为5的整数,左对齐printf("Left-aligned: %-5d\n", 42)Left-aligned: 42
%.3f浮动小数精度为3%.3f格式化浮动小数保留3位小数printf("Pi: %.3f\n", 3.14159)Pi: 3.142
%05d整数最小宽度5,填充零%05d输出宽度为5的整数,空白部分用零填充printf("Padded with zeros: %05d\n", 42)Padded with zeros: 00042
%+d显示符号(包括正号)%+d输出整数时,显示符号printf("Signed number: %+d\n", 42)Signed number: +42
% d显示符号(包括空格)% d输出整数时,正数前显示空格printf("Signed number with space: % d\n", 42)Signed number with space: 42
  • 格式控制选项
    • 最小宽度(如 %5d):指定输出的最小宽度,如果输出的数字或字符不足宽度,则填充空格(默认右对齐)。
    • 左对齐(如 %-5d):指定输出左对齐。
    • 精度(如 %.3f):控制浮动小数的显示精度。
    • 填充零(如 %05d):用零填充空白位置。
    • 符号控制(如 %+d):强制显示符号,正数显示 +,负数显示 -% d 只对正数加空格。

三、字符串插值(String Interpolation)

  • Scala 提供了三种常见的字符串插值方式:s 插值、f 插值和 raw 插值。
3.1 使用 s 插值字符串
  • 在字符串前加上 s,然后用 ${} 包裹要插入的变量或表达式。

在这里插入图片描述

  • s 插值会自动将 $ 后面的变量值插入到字符串中。如果需要插入的部分是一个表达式,可以将表达式放在花括号 {} 中。

在这里插入图片描述
在这里插入图片描述

官网示例:


在这里插入图片描述

  • 复杂的表达式,可以把表达式放在 {} 中:

在这里插入图片描述
在这里插入图片描述

官网示例:

在这里插入图片描述

eg.如果要插入的是复杂的表达式,使用 {} 是必须的。

val radius = 3
val area = s"The area of a circle with radius $radius is ${Math.PI * radius * radius}."
println(area)  // 输出: The area of a circle with radius 3 is 28.274333882308138.

官网示例:

在这里插入图片描述


3.2 使用 f 插值字符串
  • 提供了一种简洁且类型安全的方式来格式化字符串,比如控制数字的小数位数、对齐方式等,类似于 printf
f"$表达式%格式"
  • f 表示我们正在使用 f 字符串插值器。
  • $表达式 表示你想要格式化的变量或表达式。
  • %格式 是指定对该表达式应用的格式。

在这里插入图片描述

  • $name%sname 变量格式化为字符串,%s 是格式化字符串的格式说明符,表示将变量作为字符串输出。
  • $height%2.2fheight 变量格式化为浮动小数,保留两位小数,输出 1.90

%.2f 保留 pi 的两位小数
在这里插入图片描述
在这里插入图片描述


f 插值器的一个重要特性是类型安全。确保格式化字符串的格式符和变量的类型匹配。如果类型不匹配,Scala 编译器会在编译时产生错误。
在这里插入图片描述
在这里插入图片描述

  • %d — 格式化整数。
  • %f — 格式化浮动小数。
  • %s — 格式化字符串。
  • %x — 格式化为十六进制。
  • %4.2f — 格式化浮动小数,保留 4 位总数,其中 2 位在小数点后。

在这里插入图片描述

这样会输出包含 % 符号的字符串,而不会将其误认为是格式化符。


3.3 使用 raw 插值字符串

raw 插值不处理转义字符(如 \n),直接将字符串中的转义符输出为文字。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
不处理转义字符:
在这里插入图片描述


各位看客老爷万福金安,一键三连呀🤣🤣🤣 谢谢啦~


http://www.kler.cn/a/398231.html

相关文章:

  • Unity 2022 Nav Mesh 自动寻路入门
  • java 读取 有时需要sc.nextLine();读取换行符 有时不需要sc.nextLine();读取换行符 详解
  • 了解 Solon MVC 的参数注入规则
  • LLMs 训练经验篇
  • java实现代码沙盒(docker-java)
  • 智能化运维与AI/ML辅助决策:实现自动化与预测优化
  • Spring Boot编程训练系统:开发与部署
  • SpringBoot 创建对象常见的几种方式
  • UEFI学习(五)——启动框架
  • web-02
  • DB-GPT系列(六):数据Agent开发part1-光速创建AWEL Agent应用
  • Java 全栈知识体系
  • Oracle Instant Client 23.5安装配置完整教程
  • django框架-settings.py文件的配置说明
  • 【C语言】前端未来
  • 公开一下我的「个人学习视频」!
  • 【系统架构设计师】真题论文: 论基于 REST 服务的 Web 应用系统设计(包括解题思路和素材)
  • SQL面试题——日期交叉问题
  • PMP–一、二、三模、冲刺–分类–5.范围管理–技巧–引导
  • 三种网络模式固定IP
  • python关键字和内置函数有哪些?
  • AIGC学习笔记(5)——AI大模型开发工程师
  • Scala-迭代器
  • 31-Shard Allocation Awareness(机架感知)
  • 渑池县中药材产业党委莅临河南广宇企业管理集团有限公司参观交流
  • C++和OpenGL实现3D游戏编程【连载18】——加载OBJ三维模型