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!()

 

posted @ 2017-06-05 16:16  dade丶  阅读(345)  评论(0编辑  收藏  举报