Scala – String

scala

String trong Scala là kết hợp của các ký tự hoặc một chuỗi các ký tự. Nó là cấu trúc dữ liệu dựa trên index và sử dụng phương pháp tuyến tính để lưu trữ dữ liệu trong bộ nhớ. String là immutable trong Scala giống như Java. Bạn có thể thao tác String và có thể sử dụng các phương thức để có được kết quả mong muốn nhưng bạn không thể thay đổi object của String gốc.

Ví dụ

Hãy xem một ví dụ về định nghĩa một biến cho String trong Scala

object Str {
  val st: String = "Scala is a functional programming language" 
  def main(args:Array[String]) {
    println(st)
  }
}

Kết quả: Scala is a functional programming language

String trong Scala giống như String trong Java và do đó giá trị là thuộc kiểu java.lang.String.  Các Java class là có sẵn trong Scala do đó Scala sử dụng các String Java mà không cần phải tạo một String riêng.

Giống như Java, String là immutable tức là giá trị của nó không thay đổi

Tạo String

String có thể được tạo theo 2 cách như sau:

val s1 = "String is a sequence of characters"
val s2:String = "String is a sequence of characters"

Trong trường hợp đầu tiên, trình biên dịch gặp một chuỗi các ký tự nên nó sẽ tạo một object String s1

Trong trường hợp thứ 2, kiểu String được chỉ định trước khi gặp chuỗi các ký tự

Nếu chúng ta cần nối vào String gốc, class StringBuildercó sẵn trong Scala

Độ dài String

Các phương thức được sử dụng để có được thông tin một object gọi là các phương thức accessor. Phương thức length() là một trong những phương thức accessor, mà trả về số các ký tự trong String.

Ví dụ

object strlen {
   def main(args: Array[String]) {
     var str = "Strings are immutable in scala";
     var len = str.length();
     println( "String Length is : " + len );
   }
}

Kết quả: String Length is : 30

Nối String

String có thể được nối theo 2 cách – Một là sử dụng phương thức concat và cách thứ hai sử dụng toán tử +

Hãy cùng xem ví dụ bên dưới đây sử dụng concat

object concat {
   def main(args: Array[String]) {
     var str1 = "String concatenation can be ";
     var str2 = "done using concat method";
     var st = str1.concat(str2)
     println( "Concatenated String is : " + st );
   }
}

Kết quả: Concatenated String is : String concatenation can be done using concat method

Phương thức concat nhận một String cần được nối vào

Tiếp theo hãy xem ví dụ sử dụng toán tử +

object strcon {
   def main(args: Array[String]) {
     var str1 = "Student name  ";
     var str2 = "is Micheal";
     var st = str1+ str2
     println( "Concatenated String is : " + st );
   }
}

Kết quả: Concatenated String is : Student name is Micheal

Định dạng String

Các phương thức printf()format() được sử dụng để định dạng cho các số đầu ra. Class String có phương thức format() mà trả về một String object

object format {
   def main(args: Array[String]) {
      var n1 = 78.99
      var n2 = 49
      var s1 = "Hello, World!"
      var f1 = printf("The value of the float variable is " +
                   "%f, while the value of the integer " +
                   "variable is %d, and the string " +
                   "is %s", n1, n2, s1)
      println(f1)
   }
}

Kết quả: The value of the float variable is 78.990000, while the value of the integer variable is 49, and the string is Hello, World!()

Trong khi format() được sử dụng như sau

object formatmethod {
  def main(args:Array[String]){
    val firstName = "Chris"
    val lastName = "Harris"
    val age = 12; 
    println("%s %s, %d".format(firstName, lastName, age));
  }
}

Kết quả: Chris Harris, 12

Các hàm String

Sau đây là một vài phương thức hữu ích được sử dụng trong Scala

  1. char charAt(int index) → Trả về ký tự ở index cụ thể
  2. String replace(char c1, char c2)  → Trả về kết quả một String mới bằng cách thay thế toàn bộ ký tự c1 bằng ký tự c2 trong String
  3. String[] split(String reg1) → Tách String dựa theo regular expression truyền vào
  4. String substring(int i1) → Trả về một String mới là chuỗi con của chuỗi này
  5. String trim() → Trả về một chuỗi y hệt mà được xoá bỏ khoảng trắng ở đầu và cuối String
  6. String substring(int b1, int e1) → Trả về một String mới là chuỗi con của chuỗi này (từ index bắt đầu b1 đến index kết thúc e1)
  7. boolean startsWith(String prefix) → Kiểm tra xem String có được bắt đầu bằng chuỗi prefix
  8. boolean matches(String regex)  → Kiểm tra xem chuỗi có phù hợp với regular expression regex truyền vào hay không
  9. int hashCode() → trả về một hash code cho String

 

 

 

You May Also Like

About the Author: Nguyen Dinh Thuc

Leave a Reply

Your email address will not be published.