Scala学习笔记(五)(字符串)
object Test { val greeting: String = "Hello, world!" def main(args: Array[String]) { println( greeting ) } }
在这里,上面的值类型是从Java的java.lang.String借来的,因为Scala的字符串也是Java字符串。这一点是非常好的,要注意:每一个Java类可用在Scala中。因此,Scala没有String类并直接利用Java字符串String类。因此,这一章已被写入保持Java String的基础。
在Scala中与在Java中一样,一个字符串是不可变的对象,也就是,这是不能被修改的对象。另一方面,对象是可以修改的,如数组对象,被称为可变对象。由于字符串是非常有用的对象,在本节的其余部分,我们目前最重要了解类java.lang.String的方法定义。
创建字符串:
最直接的方法来创建一个字符串的编写方法是:
var greeting = "Hello world!"; or var greeting:String = "Hello world!";
每当遇到一个字符串在代码中,编译器创建String对象及其值,在这个示例中使用:“Hello world!”,但如果你喜欢,可以给字符串,因为这里我已经在声明中交替显示。
object Test { val greeting: String = "Hello, world!" def main(args: Array[String]) { println( greeting ) } }
让我们编译和运行上面的程序,这将产生以下结果:
C:/>scalac Test.scala C:/>scala Test Hello, world! C:/>
正如前面提到的,String类是不可变的,所以一旦它被创建,String 对象不能改变。如果需要做大量修改字符的字符串,那么应该使用在Scala提供字符串构建器类( String Builder )。
字符串长度:
用于获得关于对象的信息的方法是已知的存取方法。可以使用字符串使用一个存取方法是length()方法,它返回包含在字符串对象中的字符数。
下面两行代码被执行之后,len 等于17:
object Test { def main(args: Array[String]) { var palindrome = "Dot saw I was Tod"; var len = palindrome.length(); println( "String Length is : " + len ); } }
让我们编译和运行上面的程序,这将产生以下结果:
C:/>scalac Test.scala C:/>scala Test String Length is : 17 C:/>
连接字符串:
String类包括用于连接两个字符串的方法:
string1.concat(string2);
这返回一个string1将string2添加到它的末尾的一个新字符串。也可以使用concat()方法用字符串,如:
"My name is ".concat("Zara");
字符串比较常用连接在一起,使用+运算符,如:
"Hello," + " world" + "!"
这将产生:
Hello,World!
让我们来看看下面的例子:
object Test { def main(args: Array[String]) { var str1 = "Dot saw I was "; var str2 = "Tod"; println("Dot " + str1 + str2); } }
让我们编译和运行上面的程序,这将产生以下结果:
C:/>scalac Test.scala C:/>scala Test Dot Dot saw I was Tod C:/>
创建格式化字符串:
已经有两个方法:printf()和format()方法使用格式化数字打印输出。 String类有一个等价类的方法,format(),它返回一个String对象,而不是一个PrintStream对象。让我们看看下面的例子,这是使用printf()方法:
object Test { 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) } }
让我们编译和运行上面的程序,这将产生以下结果:
C:/>scalac Test.scala C:/>scala Test The value of the float variable is 12.456000, while the value of the integer var iable is 2000, and the string is Hello, Scala!()