Scala中字符串的操作

2023-11-05

在 Scala 中,字符串的类型实际上是 Java String,它本身没有 String 类。

在 Scala 中,String 是一个不可变的对象,所以该对象不可被修改。这就意味着你如果修改字符串就会产生一个新的字符串对象。

但其他对象,如数组就是可变的对象

1.定义:

字符可以用单引号:var character1 = 'a'

字符串用 双引号:var greeting = "Hello World!"

2.字符串声明后是不可改变的,每次改变都会创建新对象,如果想要改变可以设置为StringBuilder

val builder = new StringBuilder
builder += 'a'
builder ++= "def"
println(builder.toString)

ps: StringBuilder 中的 += 是个方法,用来拼接字符 ,单引号

++= 方法是用来 拼接字符串的  双引号

 

3.字符串长度   .length

val builder = new StringBuilder
builder += 'a'
builder ++= "def"
println(builder.length)

输出:4

4.字符串的操作

4.1 增:

拼接:concat()  或者 + 

eg:

val str1 = "abc"
val str2 = "ddd"
var str3 = str1.concat(str2)
var str4 = str1+str2
println(str3)
println(str4)

输出结果:

常用的:

int indexOf(String str)

返回指定子字符串在此字符串中第一次出现处的索引

 

int indexOf(int ch, int fromIndex)

返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索

 

boolean equals(Object anObject)

将此字符串与指定的对象比较

 

int length()

返回此字符串的长度

 

String[] split(String regex)

根据给定正则表达式的匹配拆分此字符串

eg:

val str3 = "a,b,c,d,e,f,e"
var arr1 = new Array[String](10)
arr1 = str3.split(",")
for (i <- arr1){
  println(i)
}

输出:

 

String substring(int beginIndex, int endIndex)

返回一个新字符串,它是此字符串的一个子字符串

 

String trim()

删除指定字符串的首尾空白符

 

序号 方法及描述
1

char charAt(int index)

返回指定位置的字符

2

int compareTo(Object o)

比较字符串与对象

3

int compareTo(String anotherString)

按字典顺序比较两个字符串

4

int compareToIgnoreCase(String str)

按字典顺序比较两个字符串,不考虑大小写

5

String concat(String str)

将指定字符串连接到此字符串的结尾

6

boolean contentEquals(StringBuffer sb)

将此字符串与指定的 StringBuffer 比较。

7

static String copyValueOf(char[] data)

返回指定数组中表示该字符序列的 String

8

static String copyValueOf(char[] data, int offset, int count)

返回指定数组中表示该字符序列的 String

9

boolean endsWith(String suffix)

测试此字符串是否以指定的后缀结束

10

boolean equals(Object anObject)

将此字符串与指定的对象比较

11

boolean equalsIgnoreCase(String anotherString)

将此 String 与另一个 String 比较,不考虑大小写

12

byte getBytes()

使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中

13

byte[] getBytes(String charsetName

使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中

14

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

将字符从此字符串复制到目标字符数组

15

int hashCode()

返回此字符串的哈希码

16

int indexOf(int ch)

返回指定字符在此字符串中第一次出现处的索引

17

int indexOf(int ch, int fromIndex)

返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索

18

int indexOf(String str)

返回指定子字符串在此字符串中第一次出现处的索引

19

int indexOf(String str, int fromIndex)

返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始

20

String intern()

返回字符串对象的规范化表示形式

21

int lastIndexOf(int ch)

返回指定字符在此字符串中最后一次出现处的索引

22

int lastIndexOf(int ch, int fromIndex)

返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索

23

int lastIndexOf(String str)

返回指定子字符串在此字符串中最右边出现处的索引

24

int lastIndexOf(String str, int fromIndex)

返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索

25

int length()

返回此字符串的长度

26

boolean matches(String regex)

告知此字符串是否匹配给定的正则表达式

27

boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)

测试两个字符串区域是否相等

28

boolean regionMatches(int toffset, String other, int ooffset, int len)

测试两个字符串区域是否相等

29

String replace(char oldChar, char newChar)

返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的

30

String replaceAll(String regex, String replacement

使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串

31

String replaceFirst(String regex, String replacement)

使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串

32

String[] split(String regex)

根据给定正则表达式的匹配拆分此字符串

33

String[] split(String regex, int limit)

根据匹配给定的正则表达式来拆分此字符串

34

boolean startsWith(String prefix)

测试此字符串是否以指定的前缀开始

35

boolean startsWith(String prefix, int toffset)

测试此字符串从指定索引开始的子字符串是否以指定前缀开始。

36

CharSequence subSequence(int beginIndex, int endIndex)

返回一个新的字符序列,它是此序列的一个子序列

37

String substring(int beginIndex)

返回一个新的字符串,它是此字符串的一个子字符串

38

String substring(int beginIndex, int endIndex)

返回一个新字符串,它是此字符串的一个子字符串

39

char[] toCharArray()

将此字符串转换为一个新的字符数组

40

String toLowerCase()

使用默认语言环境的规则将此 String 中的所有字符都转换为小写

41

String toLowerCase(Locale locale)

使用给定 Locale 的规则将此 String 中的所有字符都转换为小写

42

String toString()

返回此对象本身(它已经是一个字符串!)

43

String toUpperCase()

使用默认语言环境的规则将此 String 中的所有字符都转换为大写

44

String toUpperCase(Locale locale)

使用给定 Locale 的规则将此 String 中的所有字符都转换为大写

45

String trim()

删除指定字符串的首尾空白符

46

static String valueOf(primitive data type x)

返回指定类型参数的字符串表示形式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala中字符串的操作 的相关文章

随机推荐

  • ChromeDriver最新版(116.x及最新)下载途径分享

    首先查看version 在地址栏输入chrome version 最新版 官方地址 https googlechromelabs github io chrome for testing 选择合适的下载即可 Old 官网 https chr
  • 关于postman使用技巧

    一 get方法 只在此显示下有token的查询方法 一般的get查询直接浏览器地址即可 二 post请求 1 在headers中设置下Content Type为application json 2 在Body中输入正确的json格式即可 三
  • 从零实现DevOps(二):Centos7操作系统-环境变量配置(JDK、Maven、Node)

    1 JDK安装并配置环境变量 由于Jenkins官网要求 从2 357版本后必须用java11或17才可以运行 java8运行会报错 所以我们直接安装jdk11 1 下载地址 往下拉可以找到Java11 Java Downloads Ora
  • C语言速成指南

    说明一下吧 这篇文章是用于c语言有目的的速成 有点基础的看一看也可以当复习 如果想要真正学好c语言 建议看一下之前写的详细教程 这篇文章会有很多对于考试没有多大帮助的东西被忽略掉 临近期末祝大家考试顺利 我也会不断完善这篇文章的 欢迎各路大
  • SQLMap 注入 DVWA实战

    一 low级别 1 进入dvwa界面输入1 点击Submit 得到链接 http localhost dvwa master vulnerabilities sqli id 1 Submit Submit 2 我们用sqlmap进行爆破 s
  • springboot 配置多个请求服务代理

    springboot 配置服务代理 有时候 我们可能有下边这样的需求 即 针对于分布式服务 我们会有多种业务接口服务 但是服务器上可能只要求开放一个服务的端口 比如上图的restA项目端口是对外开放的 但是restB项目端口并未对外开放 这
  • StringBuffer与StringBuilder的区别

    StringBuffer与StringBuilder的区别 一 String StringBuffer与StringBuilder String字符串常量 String的值是不可变的 这就导致每次对String的操作都会生成新的String
  • 运算符优先级

    C语言中 运算符除了常见的三大类 算术运算符 关系运算符与逻辑运算符之外 还有一些用于完成特殊任务的运算符 运算符的运算优先级共分为15 级 1 级最高 15 级最低 在表达式中 优先级较高的先于优先级较低的进行运算 而在一个运算量两侧的运
  • 我爱Java系列之《JavaEE学习笔记day12》---【缓冲流、转换流、序列/反序列化流、打印流】

    一 缓冲流 1 字节缓冲输出流java io BufferedOutputStream extends OutputStream 高效字节输出流 写入文件 目标文件 底层定义个了一个长度为8192的数组 提高效率 常用方法 write in
  • lvm扩容是否影响oracle,linux下对LVM扩容

    扩容原因 dev vg rhel64 lv root 占用率达到100 导致部分应用无法继续运行 操作过程 1 关闭系统 在虚拟机中添加一块10G的磁盘 2 查看新添加磁盘对应的名称 email protected fdisk cul 得知
  • 人工智能大语言模型微调技术:SFT 监督微调、LoRA 微调方法、P-tuning v2 微调方法、Freeze 监督微调方法

    1 SFT 监督微调 1 1 SFT 监督微调基本概念 SFT Supervised Fine Tuning 监督微调是指在源数据集上预训练一个神经网络模型 即源模型 然后创建一个新的神经网络模型 即目标模型 目标模型复制了源模型上除了输出
  • nodejs安装和环境配置-Windows

    0 安装过程中遇到的常见问题 访问 https blog csdn net weixin 52799373 article details 125718587 spm 1001 2014 3001 5502 1 下载node js 下载地址
  • 向数据库插入数据、修改数据时自动生成时间以及自动修改时间

    数据库中列名为 created 用于自动记录 数据添加 的时间 其数据类型为 timestamp 默认为 CURRENT TIMESTAMP 修改成功后 下次添加新的数据 该列会自动记录系统时间 CREATE TABLE example i
  • Keycloak 登录方案

    转自 Keycloak 13 自定义用户身份认证流程 User Storage SPI Zhang Xiang 博客园
  • 管理系统 -----sku

    目录 skuform静态页面 ui下拉框 reduce 方法详解及高级技巧 语法 reduce的简单用法 reduce的高级用法 项目实战应用 SKUFORM完整代码 完成查看SKU列表的loading效果 spu父组件 sku页面 深度选
  • 字节跳动面试分享,android内存优化面试题

    一 开发背景 想要成为一名优秀的Android开发 你需要一份完备的知识体系 在这里 让我们一起成长为自己所想的那样 我们的项目需要开发一款智能硬件 它由 Web 后台发送指令到一款桌面端应用程序 再由桌面程序来控制不同的硬件设备实现业务上
  • Node.js入门:Buffer对象学习

    前言 计算机底层存储的数据都是二进制的 在前端开发中一般都是实现页面效果 很少会直接操作二进制的数据 而在 Node js 擅长的领域 比如在服务端程序开发中 经常会读取文件 处理文件 和二进制数据打交道比较多 Buffer 对象是 Nod
  • 解决SSH连接时提示server responded connection closed

    这个问题折腾了我大半天 脑子太呆板 搜了一大堆的资料都不管用 其实很简单 卸载重装就完事了 真笨 SSH连接时提示server responded connection closed The connection to the remote
  • 2022-04-03 面试题:synchronized 部分原理+常量池部分问题+自动装箱/http 部分问题

    2022 04 03 synchronized 部分原理 常量池部分问题 自动装箱 http 部分问题 部分整理参考来自 https blog csdn net zzti erlie article details 86587263 utm
  • Scala中字符串的操作

    在 Scala 中 字符串的类型实际上是 Java String 它本身没有 String 类 在 Scala 中 String 是一个不可变的对象 所以该对象不可被修改 这就意味着你如果修改字符串就会产生一个新的字符串对象 但其他对象 如