scala的字符串的方法(五)
1.创建一个字符串
以下是创建一个字符串的代码 -
var greeting = "Hello world!";// 或者var greeting:String = "Hello world!";
Scala
每当编译器在代码中遇到一个字符串文字时,它会创建一个带有它的值的String对象,在这种情况下是“Hello world!”
。String
关键字也可以在如上所示的第二个声明中给出。
请尝试以下示例程序。
object Demo {val greeting: String = "Hello, world!"def main(args: Array[String]) {println( greeting )}
}
Scala
将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。
D:\> scalac Demo.scala
D:\> scala DemoHello, world!
Scala
如前所述,String
类是不可变的。创建后的String
对象是无法更改的。如果有必要对字符串进行大量修改,那么可考虑使用Scala中提供的StringBuilder
类。
2. 字符串长度
用于获取有关对象的信息的方法称为访问器方法。一个可以与字符串一起使用的访问器方法是length()
方法,它返回字符串对象中包含的字符数。
使用以下代码段来查找字符串的长度 -
例子
object Demo {def main(args: Array[String]) {var palindrome = "Dot saw I was Tod";var len = palindrome.length();println( "String Length is : " + len );}
}
Scala
将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。
$ scalac Demo.scala
$ scala DemoString Length is : 17
Scala
3. 连接字符串
String类包括一个连接两个字符串的方法 -
string1.concat(string2);
Scala
这将返回一个新的字符串,字符串string1
的尾部添加字符串string2
。您也可以使用concat()
方法在字符串文字上操作,如下 -
"My name is ".concat("Zara");
Scala
字符串通常还使用+
运算符连接,如 -
"Hello," + " world" + "!"
Scala
这将产生以下结果 -
"Hello, world!"
Scala
以下代码行将两个字符串相连接 -
object Demo {def main(args: Array[String]) {var str1 = "Dot saw I was ";var str2 = "Tod";println("Dot " + str1 + str2);}
}
Scala
将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。
D:\>scalac Demo.scala
D:\>scala DemoDot Dot saw I was Tod
Shell
4. 创建格式化字符串
您可以使用printf()
和format()
方法打印具有格式化数字或字符串的输出。 String
类具有format()
方法,它返回String
对象而不是PrintStream
对象。
尝试以下示例程序,它使用printf()
方法 -
示例
object Demo {def main(args: Array[String]) {var floatVar = 12.456var intVar = 2000var stringVar = "Hello, Scala!"var fs = printf("The value of the float variable is " + "%f, while the value of the integer " + "variable is %d, and the string" + "is %s", floatVar, intVar, stringVar);println(fs)}
}
Scala
将上述程序保存在源文件:Demo.scala中,以下命令用于编译和执行此程序。
D:\>scalac Demo.scala
D:\>scala DemoThe value of the float variable is 12.456000,
while the value of the integer variable is 2000,
and the string is Hello, Scala!()
Scala
5. 字符串插值
字符串插值是使用Scala编程语言创建字符串的新方法。此功能支持只在Scala-2.10及更高版本。字符串插值:直接在过程字符串文字中嵌入变量引用的机制。
字符串插值中有三种类型(插值器)实现。
5.1. ‘s’字符串插值器
文字's'
允许在处理字符串时直接使用变量。任何在范围中的String变量可以在字符串中使用。以下是's'
字符串插值器的不同用法。
在println
语句中将String
变量($name
)附加到普通字符串(Hello
)中,以下示例代码片段用于实现's'
插值器。
val name = “James”
println(s “Hello, $name”) //output: Hello, James
Scala
字符串插入器还可以处理任意表达式。 使用's'
字符串插入器处理具有任意表达式(${1 + 1}
)的字符串(1 + 1
)的以下代码片段。任何表达式都可以嵌入到${}
中。
println(s “1 + 1 = ${1 + 1}”) //output: 1 + 1 = 2
Scala
尝试实现's'
插值器的示例程序如下 -
object Demo {def main(args: Array[String]) {val name = "James"println(s"Hello, $name")println(s"1 + 1 = ${1 + 1}")}
}
Scala
将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。
D:\>scalac Demo.scala
D:\>scala DemoHello, James
1 + 1 = 2
Scala
5.2 ‘f’插值器
文字'f'
插值器允许创建一个格式化的字符串,类似于C语言中的printf
。 在使用'f'
插值器时,所有变量引用都应该是printf
样式格式说明符,如%d
,%i
,%f
等。
我们以一般的字符串为例附加浮点值(height = 1.9d
)和字符串变量(name =“James”
)。下面的代码片段实现'f'
插值器。这里$name%s
打印String变量James
和$height%2.2f
打印浮点值1.90
。
val height = 1.9d
val name = "James"
println(f"$name%s is $height%2.2f meters tall") //James is 1.90 meters tall
Scala
它是类型安全的变量引用,以下格式说明符要匹配,否则显示错误。'f'
插值器使用Java中可用String
格式实用程序(格式说明符)。 默认情况下,变量引用后没有%
字符。它将假定为%s
的字符串。
5.3 “原始”插值器
'raw'
内插器类似于's'
插值器,除了它不执行字符串内的文字转义。下表中的代码段将区别's'
和'raw'
插值器的用法。 在使用s
和\n
效果的输出中,新行作为原始值输出,也就是\n
将不起作用。它将使用转义字母打印完整的字符串。
's'
的插值器使用,程序代码如下 -object Demo {def main(args: Array[String]) {println(s"Result = \n a \n b")} }
Scala
输出结果 -
Result = a b
Shell
'raw'
的插值器使用,程序代码如下 -object Demo {def main(args: Array[String]) {println(raw"Result = \n a \n b")} }
Scala
输出结果 -
Result = \n a \n b
Shell
字符串方法
以下是java.lang.String
类定义的方法列表,可以直接在Scala
程序中使用 -
编号 | 方法 | 描述 |
---|---|---|
1 | char charAt(int index) | 返回指定索引处的字符。 |
2 | int compareTo(Object o) |
将此String 与另一个对象进行比较。
|
3 | int compareTo(String anotherString) | 按字典顺序比较两个字符串。 |
4 | int compareToIgnoreCase(String str) | 按字典顺序比较两个字符串,忽略大小写差异。 |
5 | String concat(String str) | 将指定的字符串连接到该字符串的末尾。 |
6 | boolean contentEquals(StringBuffer sb) |
当且仅当此String 表示与指定的StringBuffer 的字符序列相同时,才返回true 。
|
7 | static String copyValueOf(char[] data) | 返回一个字符串,表示指定的数组中的字符序列。 |
8 | static String copyValueOf(char[] data, int offset, int count) | 返回一个字符串,表示指定的数组中的字符序列。 |
9 | boolean endsWith(String suffix) | 测试此字符串是否以指定的字符串为后缀/结尾。 |
10 | boolean equals(Object anObject) | 将此字符串与指定对象进行比较。 |
11 | boolean equalsIgnoreCase(String anotherString) | 将此String与另一个String进行比较,并忽略大小写。 |
12 | byte getBytes() | 使用平台的默认字符集将此String编码为一系列字节,将结果存储到新的字节数组中。 |
13 | byte[] getBytes(String charsetName) | 使用命名的字符集将此String编码为一系列字节,将结果存储到新的字节数组中。 |
14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) |
将此字符串从srcBegin 到srcEnd 索引处的字符复制到目标字符数组(dst )中。
|
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 offset, int len) | 测试两个字符串区域是否相等。 |
28 | boolean regionMatches(int toffset, String other, int offset, int len) | 测试两个字符串区域是否相等。 |
29 | String replace(char oldChar, char newChar) |
返回一个新的字符串,此字符串是使用newChar 替换此字符串中所有出现的oldChar 的结果。
|
30 | String replaceAll(String regex, String replacement |
使用replacement 替换与给定正则表达式(regex )匹配的字符串中的每个子字符串。
|
31 | String replaceFirst(String regex, String replacement) |
用给定的replacement 替换与给定正则表达式(regex )匹配的字符串中的第一个子字符串。
|
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) | 使用给定的区域设置的规则将此String中的所有字符转换为小写。 |
42 | String toString() | 此对象(已经是字符串)本身已被返回。 |
43 | String toUpperCase() | 使用默认语言环境的规则将此字符串中的所有字符转换为大写。 |
44 | String toUpperCase(Locale locale) | 使用给定的区域设置的规则将此String中的所有字符转换为大写。 |
45 | String trim() | 返回字符串的副本,省略前导和尾随空格。 |
46 | static String valueOf(primitive data type x) | 返回传递数据类型参数的字符串表示形式。 |
scala的字符串的方法(五)相关推荐
- 计算字符串长度的五种方法
方法一: ------------------------------------------------------------ 方法二; ----------------------------- ...
- js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind
数组方法.字符串方法总结 大目录 小目录 一.ES5严格模式 1. 严格模式: 2. 严格模式的行为变更: 二.ES5新增的数组的方法 1. 判断是否为数组:Array.isArray(): 2. 判 ...
- scala 拆分字符串翻转_Scala程序分割字符串
scala 拆分字符串翻转 A string is a collection that stores multiple characters, it is an immutable sequence ...
- scala 转换为字符串_如何在Scala中将字符串转换为布尔值?
scala 转换为字符串 String in Scala is a sequence of characters. In Scala, the String object is immutable. ...
- scala中字符串计数_如何在Scala中创建一系列字符?
scala中字符串计数 The range is a set of data from a lower value to a larger value. In Scala, we have an ea ...
- java字符串string_Java字符串String方法总结
Java字符串创建与初始化实例.Java字符串String方法总结,包括字符串的大小写替转换,获取字符串长度的方法.截取字符串,去除字符串中的空格.StringBuffer类转换成String类等: ...
- Python字符串类型:字符串索引、字符串切片、字符串format()方法格式化、字符串操作符、字符串处理函数
字符串:由0个或多个字符组成的有序序列sequence. 一.字符串表示方式:2类4种 由一对单引号或双引号表示,该方式仅用于表示单行字符串 由一对三单引号或三双引号,该方式可以表示多行字符串 如果希 ...
- “Python字符串index()方法应用案例”文末三道思考题答案
问题链接:Python字符串index()方法应用案例一则 本文给出上文文末三个思考题的参考答案,当然,这些答案不是唯一的,也不是最高效的,只是演示字符串方法和内置函数的用法,并且在原题代码上做最少的 ...
- Python字符串index()方法应用案例一则
问题描述:查找字符串中每个字符第一次出现的位置. 技术要点:字符串的index()方法返回指定子串在当前字符串中首次出现的位置. 参考代码与运行结果: 思考题: 1.如果要查找每个字符最后一次出现的位 ...
最新文章
- 【开源】QuickPager ASP.NET2.0分页控件V2.0.0.3 【增加了使用说明】
- 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY14-概率图模型
- 【Python】如何在文件夹里批量修改文件名?(0001-1000)
- 25LINQ拾遗及实例
- SAP License:SAP中的默认帐户与密码应用
- python学习笔记(七):面向对象编程、类
- WPF仿微软事件和属性窗体,效果更炫!
- 基于springboot的高校档案系统
- LINUX SHELL 中if的使用
- java接收ajax上传文件_使用ajax方式上传文件
- 虚拟机上用U盘安装系统
- 白话区块链 之2: 区块链技术理念
- <论文阅读>TARE: A Hierarchical Framework for Efficiently Exploring Complex 3D Environments
- C语言回文数判断,结果写入文件中
- 平面设计是做什么的?平面设计工作内容有哪些?
- MFC简易RTF编辑器
- 蛮力法的相关问题总结
- 信用卡的使用之二——哪些情况下银行降额
- 后端学习 - 操作系统
- 20211101bugku_re_mountain_climbing
热门文章
- 修改oracle内存大小
- Java中static、final用法小结
- 【转】C#+csgl库进行OpenGL编程
- Linux (Ubuntu) 命令
- (转)对《javascript 杂谈之哪种写法你更喜欢?》最后一种“匿名函数法”的解释...
- mega2560电脑识别不到端口后_Qt音视频开发41-人脸识别嵌入式
- python 二分查找_Python实现二分法搜索
- kafka使用_Kafka生产者的使用和原理
- c# 多线程 执行事件 并发_.NET异步和多线程系列(一)
- python求梅花数_python 算法