scala基础学习(数据类型)-字符串

文章目录

  • scala中的字符串
    • 引号
    • 常用内置函数
      • [length 获取字符串长度](#length 获取字符串长度)
      • [charAt 字符串元素访问](#charAt 字符串元素访问)
      • [substring 获取字串](#substring 获取字串)
      • [indexOf 获取字串位置](#indexOf 获取字串位置)
      • [replace 字符串替换](#replace 字符串替换)
      • [toLowerCase,toUpperCase 字符串大小写转换](#toLowerCase,toUpperCase 字符串大小写转换)
      • [trim 去除首位空白符](#trim 去除首位空白符)
      • [split 字符串切割以及查看](#split 字符串切割以及查看)
      • [startsWith,endsWith 判断开始结束,只接受字符串](#startsWith,endsWith 判断开始结束,只接受字符串)
      • [contains 是否包含,字符串,字符都可以接受](#contains 是否包含,字符串,字符都可以接受)
      • [format 格式化](#format 格式化)
      • [字符串穿插 s,f](#字符串穿插 s,f)
      • [字符串转意 \,raw](#字符串转意 ,raw)
      • 字符串拼接,重复,比较
    • 注意事项

scala中的字符串

引号

单引号

单引号创建字符
val str1 = 'A'

双引号

如果使用单引号创建字符串则报错

创建字符串,字符串是不可变对象
val str2 = "abcdefg"

三引号

创建多行字符串,三引号 |边界符号,文本都以边界符启始,stripMargin去除边界符前面的空格到遇到竖线为止
scala 复制代码
val rawStr =
  """
    |ldsx
    |ldsx2
    |ldsx3
    |{"ldsx":"dsts"}
    |""".stripMargin

常用内置函数

var test_str: String = " This is a test string "

length 获取字符串长度

scala 复制代码
val test_str_len = test_str.length

charAt 字符串元素访问

字符串访问str.charAt(index) 无法反方向获取索引,索引不能超过字符串长度否则报错

scala 复制代码
val test_char = test_str.charAt(3)

substring 获取字串

获取子字符串,str.substring(s,e),索引不能超过限制否则报错,不设置end默认取到最后,

scala 复制代码
val substr = test_str.substring(1)

indexOf 获取字串位置

查找,子字符串第一次出现在索引的位置,元素不存在返回-1

scala 复制代码
val get_index = test_str.indexOf("This")
val get_index2 = test_str.indexOf("h")

replace 字符串替换

替换 字符串中所有字符全部替换,注意单字符使用'',字符串使用"",元素不存在则无变动

scala 复制代码
val replace_str = test_str.replace('T','V')
val replace_str = test_str.replace("HELLO","HI")

toLowerCase,toUpperCase 字符串大小写转换

scala 复制代码
val lowerstr = test_str.toLowerCase
val upperstr = test_str.toUpperCase

trim 去除首位空白符

scala 复制代码
val trimstr = test_str.trim

split 字符串切割以及查看

切割后print打印出的是数组内存地址,如果想要查看内容需要配合使用mkstring,map,toseq,deep

scala 复制代码
val splitstr = test_str.split(" ")

//拼接打印
println(splitstr,splitstr.mkString("[", ", ", "]"))
//([Ljava.lang.String;@6aaa5eb0,[, This, is, a, test, string])

println(splitstr,splitstr.toSeq)
//([Ljava.lang.String;@6aaa5eb0,WrappedArray(, This, is, a, test, string))

//for循环展示
splitstr.foreach(println)
//This
//is
//a
//..
.

//可以查看多维数组结构
println(splitstr,splitstr.deep)
//([Ljava.lang.String;@6aaa5eb0,Array(, This, is, a, test, string))

val arr:Array[Any] = Array(Array(1, 2), Array(3, 4))
println(arr.deep)
//Array(Array(1, 2), Array(3, 4))
println(arr.toSeq)
//WrappedArray([I@246ae04d, [I@62043840)

startsWith,endsWith 判断开始结束,只接受字符串

即便是单字符也需要使用双引号表示字符串否则报错,返回bool值

scala 复制代码
val start_str = test_str.startsWith("T")
println(start_str)
val end_str = test_str.endsWith("ok")
println(end_str)

contains 是否包含,字符串,字符都可以接受

返回bool值

scala 复制代码
//包含contains
val contains_str = test_str.contains("This")
println(contains_str)

format 格式化

%s占位符号,S,s会影响传入数据的大小写

scala 复制代码
// %S 全部变大写  %s保持原结构
val format_str2 =  String.format("HELLO,%S","Scala")
println(format_str2)

//多参数传递,直接加参就好了
val format_str3 =  String.format("HELLO,%S,%s","Scala","LDSX")
println(format_str3)
//HELLO,SCALA,LDSX

字符串穿插 s,f

scala 复制代码
//Scala 提供了字符串插值功能,其中 s,f 字符串插值允许你在字符串中嵌入变量或表达式。
val test_str:String = "hello"
// s,f效果相同
val format_str = s"format info: $test_str"
val format_str2 = f"format info: $test_str"
println(format_str)
//format info: hello

字符串转意 ,raw

\n,\t,换行,tab 使用 \ 禁止转义

scala 复制代码
//字符串转义
val escapedstr = "Hello,\n \\n是换行"

//直接使用raw 无视转义
val escapedstr2 = raw"hello,\n"

字符串拼接,重复,比较

两个字符串之间支持使用 +concat拼接,一个字符串也支持与int进行计算,字符串之间可以比较

scala 复制代码
val test_str2: String = "test info"
println(test_str2 + " info")
//test info info

val str1 = "Hello, "
val str2 = "Scala!"
val result = str1.concat(str2)
println(result)  
// 输出: Hello, Scala!

println(test_str2*2)
//test infotest 

println(test_str2 == test_str2)
//true

隐式转换:在 Scala 中,你可以直接将整数(Int)与字符串进行拼接,Scala 会自动将整数转换为字符串。这是因为 Scala 的 Any 类型的 toString 方法被重载,可以处理数值类型。

scala 复制代码
var a = 10
var b = 20
println("a + b = " + (a + b))  // 输出: a + b = 30

由于 + 操作符的左侧是一个字符串,Scala 会自动调用 30toString 方法,将其转换为字符串 "30",然后与左侧的字符串进行拼接,得到 "a + b = 30"

注意事项

字符 与 字符串的定义方式 分别为单引'',双引""

startsWith,endsWith 只接受字符串

相关推荐
豆芽脚脚25 分钟前
python打包exe文件
linux·开发语言·python
sunly_25 分钟前
Flutter:导航,tab切换,顶部固定,列表分页滚动
开发语言·javascript·flutter
潜意识起点40 分钟前
使用 JDBC 实现 Java 数据库操作
java·开发语言·数据库
莫名其妙小饼干1 小时前
时间管理系统|Java|SSM|JSP|
java·开发语言·maven·mssql
eddieHoo1 小时前
关于生活的事
学习
数据小小爬虫1 小时前
如何利用Java爬虫获得Lazada商品评论列表
java·开发语言
jingling5552 小时前
如何使用免费资源--知网篇
开发语言·经验分享·搜索引擎·pdf·开源
是呆瓜呀2 小时前
12.13-12.21 刷题汇总
学习
乌恩大侠2 小时前
画图,matlab,
开发语言·matlab
kris00092 小时前
Python知识分享第二十九天-PyMySQL
开发语言·数据库·python