scala的字符串的方法(五)

更新时间:2023-05-12 15:08:03 阅读: 评论:0

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 Demo
Hello, 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 Demo
String Length is : 17
Scala
3. 连接字符串
String类包括⼀个连接两个字符串的⽅法 -
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 Demo
Dot Dot saw I was Tod
Shell
4. 创建格式化字符串
您可以使⽤printf()和format()⽅法打印具有格式化数字或字符串的输出。 String类具有format()⽅法,它返回String对象⽽不是PrintStream对
象。
尝试以下⽰例程序,它使⽤printf()⽅法 -
⽰例
object Demo {
def main(args: Array[String]) {
var floatVar = 12.456
var intVar = 2000
var 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 Demo
The 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 Demo
Hello, 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程序中使⽤ -
⽅法描述
1char charAt(int index)返回指定索引处的字符。
2int compareTo(Object o)将此String与另⼀个对象进⾏⽐较。
3int compareTo(String anotherString)按字典顺序⽐较两个字符串。
4int compareToIgnoreCa(String str)按字典顺序⽐较两个字符串,忽略⼤⼩写差异。5String concat(String str)将指定的字符串连接到该字符串的末尾。
6boolean contentEquals(StringBuffer sb)当且仅当此String表⽰与指定的StringBuffer的字符序列相同时,才返回true。
7static String copyValueOf(char[] data)返回⼀个字符串,表⽰指定的数组中的字符序列。
8static String copyValueOf(char[] data, int offt, int count)返回⼀个字符串,表⽰指定的数组中的字符序列。
9boolean endsWith(String suffix)测试此字符串是否以指定的字符串为后缀/结尾。
10boolean equals(Object anObject)将此字符串与指定对象进⾏⽐较。
11boolean equalsIgnoreCa(String anotherString)将此String与另⼀个String进⾏⽐较,并忽略⼤⼩写。

本文发布于:2023-05-12 15:08:03,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/105836.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符串   插值   变量   指定   对象   字符   创建
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图