Scala - String

Bab ini membawa Anda melalui Scala Strings. Di Scala, seperti di Java, string adalah objek tetap, yaitu objek yang tidak bisa dimodifikasi. Di sisi lain, objek yang bisa dimodifikasi, seperti array, disebut objek yang bisa berubah. String adalah objek yang sangat berguna, di sisa bagian ini, kami menyajikan metode pentingjava.lang.String kelas.

Membuat String

Kode berikut dapat digunakan untuk membuat String -

var greeting = "Hello world!";

or

var greeting:String = "Hello world!";

Setiap kali kompilator menemukan literal string dalam kode, ia membuat objek String dengan nilainya, dalam hal ini, “Hello world!”. Kata kunci string juga dapat diberikan dalam deklarasi alternatif seperti yang ditunjukkan di atas.

Coba program contoh berikut.

Contoh

object Demo {
   val greeting: String = "Hello, world!"

   def main(args: Array[String]) {
      println( greeting )
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

Hello, world!

Seperti yang disebutkan sebelumnya, kelas String tidak dapat diubah. Objek string setelah dibuat tidak dapat diubah. Jika ada kebutuhan untuk membuat banyak modifikasi pada karakter String, gunakan Kelas Pembuat String yang tersedia di Scala !.

Panjang String

Metode yang digunakan untuk memperoleh informasi tentang suatu objek dikenal sebagai metode pengakses. Salah satu metode pengakses yang dapat digunakan dengan string adalah metode length (), yang mengembalikan jumlah karakter yang terdapat dalam objek string.

Gunakan segmen kode berikut untuk menemukan panjang string -

Contoh

object Demo {
   def main(args: Array[String]) {
      var palindrome = "Dot saw I was Tod";
      var len = palindrome.length();
      
      println( "String Length is : " + len );
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

String Length is : 17

String Penggabungan

Kelas String menyertakan metode untuk menggabungkan dua string -

string1.concat(string2);

Ini mengembalikan string baru yaitu string1 dengan string2 ditambahkan ke dalamnya di akhir. Anda juga bisa menggunakan metode concat () dengan string literal, seperti pada -

"My name is ".concat("Zara");

String lebih sering digabungkan dengan operator +, seperti pada -

"Hello," + " world" + "!"

Yang menghasilkan -

"Hello, world!"

Baris kode berikut untuk mencari panjang string.

Contoh

object Demo {
   def main(args: Array[String]) {
      var str1 = "Dot saw I was ";
      var str2 =  "Tod";
      
      println("Dot " + str1 + str2);
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

Dot Dot saw I was Tod

Membuat Format Strings

Anda memiliki metode printf () dan format () untuk mencetak keluaran dengan angka yang diformat. Kelas String memiliki metode kelas yang setara, format (), yang mengembalikan objek String daripada objek PrintStream.

Coba program contoh berikut, yang menggunakan metode printf () -

Contoh

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)
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

The value of the float variable is 12.456000, 
while the value of the integer variable is 2000, 
and the string is Hello, Scala!()

Interpolasi String

Interpolasi String adalah cara baru untuk membuat Strings dalam bahasa pemrograman Scala. Fitur ini mendukung versi Scala-2.10 dan yang lebih baru. Interpolasi String: Mekanisme untuk menyematkan referensi variabel secara langsung dalam proses string literal.

Ada tiga jenis (interpolator) implementasi dalam Interpolasi String.

Interpolator String

Literal 's' memungkinkan penggunaan variabel secara langsung dalam memproses string, saat Anda menambahkan 's' padanya. Variabel String apa pun dalam cakupan yang dapat digunakan dengan dalam String. Berikut ini adalah perbedaan penggunaan 's' String interpolator.

Potongan kode contoh berikut untuk implementasi 's' interpolator dalam menambahkan variabel String ($ name) ke String (Hello) normal dalam pernyataan println.

val name = “James”
println(s “Hello, $name”) //output: Hello, James

Interpolater string juga dapat memproses ekspresi arbitrer. Potongan kode berikut untuk Memproses String (1 + 1) dengan ekspresi arbitrer (${1 + 1}) using ‘s’ String interpolator. Any arbitrary expression can be embedded in ‘${} '.

println(s “1 + 1 = ${1 + 1}”) //output: 1 + 1 = 2

Coba program contoh penerapan 's' interpolator berikut.

Contoh

object Demo {
   def main(args: Array[String]) {
      val name = "James"
      
      println(s"Hello, $name")
      println(s"1 + 1 = ${1 + 1}")
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

Hello, James
1 + 1 = 2

'F' Interpolator

Interpolator literal 'f' memungkinkan untuk membuat String yang diformat, mirip dengan printf dalam bahasa C. Saat menggunakan interpolator 'f', semua referensi variabel harus diikuti olehprintf penentu format gaya seperti% d,% i,% f, dll.

Mari kita ambil contoh nilai floating point (tinggi = 1.9d) dan variabel String (name = "James") dengan string normal. Potongan kode berikut menerapkan 'f' Interpolator. Di sini $ name% s untuk mencetak (variabel String) James dan $ height% 2.2f untuk mencetak (nilai floating point) 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

Ini adalah tipe yang aman (yaitu) referensi variabel dan penentu format berikut harus cocok jika tidak maka menampilkan kesalahan. Interpolator 'f' menggunakan utilitas format String (penentu format) yang tersedia di Java. Secara default, tidak ada% karakter setelah referensi variabel. Ini akan dianggap sebagai% s (String).

Interpolator 'mentah'

Interpolator 'raw' mirip dengan interpolator 's' kecuali bahwa ia tidak melakukan pelolosan literal dalam sebuah string. Potongan kode berikut dalam tabel akan membedakan penggunaan interpolator 's' dan 'raw'. Dalam output dari efek 's' usage '\ n' sebagai baris baru dan dalam output dari penggunaan 'raw', '\ n' tidak akan berpengaruh. Ini akan mencetak string lengkap dengan huruf escape.

penggunaan interpolator penggunaan interpolator 'mentah'

Program -

object Demo {
   def main(args: Array[String]) {
      println(s"Result = \n a \n b")
   }
}

Program -

object Demo {
   def main(args: Array[String]) {
      println(raw"Result = \n a \n b")
   }
}

Output -

Result =
a
b

Output -

Result = \n a \n b

Metode String

Berikut adalah daftar metode yang ditentukan oleh java.lang.String kelas dan dapat digunakan langsung di program Scala Anda -

Sr Tidak Metode dengan Deskripsi
1

char charAt(int index)

Mengembalikan karakter pada indeks yang ditentukan.

2

int compareTo(Object o)

Membandingkan String ini dengan Objek lain.

3

int compareTo(String anotherString)

Membandingkan dua string secara leksikografis.

4

int compareToIgnoreCase(String str)

Membandingkan dua string secara leksikografis, mengabaikan perbedaan huruf.

5

String concat(String str)

Menggabungkan string yang ditentukan ke akhir string ini.

6

boolean contentEquals(StringBuffer sb)

Mengembalikan nilai true jika dan hanya jika String ini mewakili urutan karakter yang sama seperti StringBuffer yang ditentukan.

7

static String copyValueOf(char[] data)

Mengembalikan String yang mewakili urutan karakter dalam array yang ditentukan.

8

static String copyValueOf(char[] data, int offset, int count)

Mengembalikan String yang mewakili urutan karakter dalam array yang ditentukan.

9

boolean endsWith(String suffix)

Menguji apakah string ini diakhiri dengan sufiks yang ditentukan.

10

boolean equals(Object anObject)

Bandingkan string ini dengan objek yang ditentukan.

11

boolean equalsIgnoreCase(String anotherString)

Bandingkan String ini dengan String lain, dengan mengabaikan pertimbangan kasus.

12

byte getBytes()

Menyandikan String ini ke dalam urutan byte menggunakan rangkaian karakter default platform, menyimpan hasilnya ke dalam array byte baru.

13

byte[] getBytes(String charsetName)

Mengkodekan String ini menjadi urutan byte menggunakan charset bernama, menyimpan hasilnya ke dalam array byte baru.

14

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

Menyalin karakter dari string ini ke dalam larik karakter tujuan.

15

int hashCode()

Mengembalikan kode hash untuk string ini.

16

int indexOf(int ch)

Mengembalikan indeks dalam string ini dari kemunculan pertama dari karakter yang ditentukan.

17

int indexOf(int ch, int fromIndex)

Mengembalikan indeks dalam string ini dari kemunculan pertama dari karakter yang ditentukan, memulai pencarian pada indeks yang ditentukan.

18

int indexOf(String str)

Mengembalikan indeks dalam string ini dari kemunculan pertama dari substring yang ditentukan.

19

int indexOf(String str, int fromIndex)

Mengembalikan indeks dalam string ini dari kemunculan pertama dari substring yang ditentukan, dimulai dari indeks yang ditentukan.

20

String intern()

Mengembalikan representasi kanonik untuk objek string.

21

int lastIndexOf(int ch)

Mengembalikan indeks dalam string ini dari kemunculan terakhir dari karakter yang ditentukan.

22

int lastIndexOf(int ch, int fromIndex)

Mengembalikan indeks dalam string ini dari kemunculan terakhir dari karakter yang ditentukan, mencari mundur mulai dari indeks yang ditentukan.

23

int lastIndexOf(String str)

Mengembalikan indeks dalam string ini dari kejadian paling kanan dari substring yang ditentukan.

24

int lastIndexOf(String str, int fromIndex)

Mengembalikan indeks dalam string ini dari kemunculan terakhir dari substring yang ditentukan, mencari mundur mulai dari indeks yang ditentukan.

25

int length()

Mengembalikan panjang string ini.

26

boolean matches(String regex)

Memberi tahu apakah string ini cocok dengan ekspresi reguler yang diberikan.

27

boolean regionMatches(boolean ignoreCase, int toffset, String other, int offset, int len)

Menguji apakah dua daerah string sama.

28

boolean regionMatches(int toffset, String other, int offset, int len)

Menguji apakah dua daerah string sama.

29

String replace(char oldChar, char newChar)

Mengembalikan string baru yang dihasilkan dari mengganti semua kemunculan oldChar dalam string ini dengan newChar.

30

String replaceAll(String regex, String replacement

Mengganti setiap substring dari string ini yang cocok dengan ekspresi reguler yang diberikan dengan penggantian yang diberikan.

31

String replaceFirst(String regex, String replacement)

Mengganti substring pertama dari string ini yang cocok dengan ekspresi reguler yang diberikan dengan penggantian yang diberikan.

32

String[] split(String regex)

Membagi string ini di sekitar kecocokan ekspresi reguler yang diberikan.

33

String[] split(String regex, int limit)

Membagi string ini di sekitar kecocokan ekspresi reguler yang diberikan.

34

boolean startsWith(String prefix)

Menguji apakah string ini dimulai dengan prefiks yang ditentukan.

35

boolean startsWith(String prefix, int toffset)

Menguji apakah string ini dimulai dengan awalan yang ditentukan memulai indeks yang ditentukan.

36

CharSequence subSequence(int beginIndex, int endIndex)

Mengembalikan urutan karakter baru yang merupakan urutan dari urutan ini.

37

String substring(int beginIndex)

Mengembalikan string baru yang merupakan substring dari string ini.

38

String substring(int beginIndex, int endIndex)

Mengembalikan string baru yang merupakan substring dari string ini.

39

char[] toCharArray()

Mengonversi string ini menjadi larik karakter baru.

40

String toLowerCase()

Mengonversi semua karakter dalam String ini ke huruf kecil menggunakan aturan lokal default.

41

String toLowerCase(Locale locale)

Mengonversi semua karakter dalam String ini ke huruf kecil menggunakan aturan Lokal yang diberikan.

42

String toString()

Objek ini (yang sudah berupa string!) Dengan sendirinya dikembalikan.

43

String toUpperCase()

Mengonversi semua karakter dalam String ini menjadi huruf besar menggunakan aturan lokal default.

44

String toUpperCase(Locale locale)

Mengonversi semua karakter dalam String ini menjadi huruf besar menggunakan aturan Lokal yang diberikan.

45

String trim()

Mengembalikan salinan string, dengan spasi kosong di depan dan di belakangnya dihilangkan.

46

static String valueOf(primitive data type x)

Mengembalikan representasi string dari argumen tipe data yang diteruskan.