Tcl - String

Tipe data primitif dari Tcl adalah string dan seringkali kita dapat menemukan tanda kutip pada Tcl sebagai bahasa hanya string. String ini dapat berisi karakter alfanumerik, hanya angka, Boolean, atau bahkan data biner. Tcl menggunakan karakter unicode 16 bit dan karakter alfanumerik dapat berisi huruf termasuk karakter non-Latin, angka atau tanda baca.

Nilai Boolean dapat direpresentasikan sebagai 1, ya atau benar untuk benar dan 0, tidak, atau salah untuk salah.

Representasi String

Tidak seperti bahasa lain, di Tcl, Anda tidak perlu menyertakan tanda kutip ganda jika hanya ada satu kata. Contohnya bisa -

#!/usr/bin/tclsh

set myVariable hello
puts $myVariable

Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -

hello

Saat kita ingin merepresentasikan beberapa string, kita bisa menggunakan tanda kutip ganda atau kurung kurawal. Itu ditunjukkan di bawah ini -

#!/usr/bin/tclsh

set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable

Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -

hello world
hello world

String Escape Sequence

Literal karakter dapat berupa karakter biasa (mis., 'X'), urutan escape (mis., '\ T'), atau karakter universal (mis., '\ U02C0').

Ada beberapa karakter dalam Tcl yang diawali dengan garis miring terbalik, mereka akan memiliki arti khusus dan digunakan untuk merepresentasikan seperti baris baru (\ n) atau tab (\ t). Di sini, Anda memiliki daftar beberapa kode urutan pelolosan tersebut -

Urutan pelarian Berarti
\\ \ karakter
\ ' 'karakter
\ " "karakter
\? ? karakter
\Sebuah Peringatan atau bel
\ b Menghapus
\ f Bentuk pakan
\ n Garis baru
\ r Kereta kembali
\ t Tab horizontal
\ v Tab vertikal

Berikut adalah contoh untuk menunjukkan beberapa karakter urutan pelolosan -

#!/usr/bin/tclsh

puts "Hello\tWorld\n\nTutorialspoint";

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Hello   World

Tutorialspoint

Perintah String

Daftar subperintah untuk perintah string tercantum di tabel berikut ini -

Sr.No. Metode & Deskripsi
1

compare string1 string2

Membandingkan string1 dan string2 secara leksografis. Mengembalikan 0 jika sama, -1 jika string1 datang sebelum string2, else 1.

2

first string1 string2

Mengembalikan kemunculan pertama indeks dari string1 dalam string2. Jika tidak ditemukan, mengembalikan -1.

3

index indeks string

Mengembalikan karakter pada indeks.

4

last string1 string2

Mengembalikan indeks kemunculan terakhir string1 dalam string2. Jika tidak ditemukan, mengembalikan -1.

5

length tali

Mengembalikan panjang string.

6

match pattern tali

Mengembalikan 1 jika string cocok dengan pola.

7

range string index1 index2

Kembalikan rentang karakter dalam string dari indeks1 ke indeks2.

8

tolower tali

Mengembalikan string huruf kecil.

9

toupper tali

Mengembalikan string huruf besar.

10

trim string? trimcharacters?

Menghapus karakter trim di kedua ujung string. Karakter trim default adalah spasi.

11

trimleft string? trimcharacters?

Menghapus karakter trim di awal kiri string. Karakter trim default adalah spasi.

12

trimright string? trimcharacters?

Menghapus karakter trim di ujung kiri string. Karakter trim default adalah spasi.

13

wordend indeks findstring

Kembalikan indeks dalam findstring karakter setelah kata yang mengandung karakter pada indeks.

14

wordstart indeks findstring

Kembalikan indeks dalam string pencarian dari karakter pertama dalam kata yang mengandung karakter pada indeks.

Contoh dari beberapa sub perintah string Tcl yang umum digunakan diberikan di bawah ini.

Perbandingan String

#!/usr/bin/tclsh

set s1 "Hello"
set s2 "World"
set s3 "World"
puts [string compare $s1 $s2]
if {[string compare $s2 $s3] == 0} {
   puts "String \'s1\' and \'s2\' are same.";
}

if {[string compare $s1 $s2] == -1} {
   puts "String \'s1\' comes before \'s2\'.";
}

if {[string compare $s2 $s1] == 1} {
   puts "String \'s2\' comes after \'s1\'.";
}

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

-1
String 's1' and 's2' are same.
String 's1' comes before 's2'.
String 's2' comes after 's1'.

Indeks String

#!/usr/bin/tclsh

set s1 "Hello World"
set s2 "o"
puts "First occurrence of $s2 in s1"
puts [string first $s2 $s1]
puts "Character at index 0 in s1"
puts [string index $s1 0]
puts "Last occurrence of $s2 in s1"
puts [string last $s2 $s1]
puts "Word end index in s1"
puts [string wordend $s1 20]
puts "Word start index in s1"
puts [string wordstart $s1 20]

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

First occurrence of o in s1
4
Character at index 0 in s1
H
Last occurrence of o in s1
7
Word end index in s1
11
Word start index in s1
6

Panjang String

#!/usr/bin/tclsh

set s1 "Hello World"
puts "Length of string s1"
puts [string length $s1]

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Length of string s1
11

Menangani Kasus

#!/usr/bin/tclsh

set s1 "Hello World"
puts "Uppercase string of s1"
puts [string toupper $s1]
puts "Lowercase string of s1"
puts [string tolower $s1]

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Uppercase string of s1
HELLO WORLD
Lowercase string of s1
hello world

Karakter Pemangkasan

#!/usr/bin/tclsh

set s1 "Hello World"
set s2 "World"
puts "Trim right $s2 in $s1"
puts [string trimright $s1 $s2]

set s2 "Hello"
puts "Trim left $s2 in $s1"
puts [string trimleft $s1 $s2]

set s1 " Hello World "
set s2 " "
puts "Trim characters s1 on both sides of s2"
puts [string trim $s1 $s2]

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Trim right World in Hello World
Hello 
Trim left Hello in Hello World
 World
Trim characters s1 on both sides of s2
Hello World

String yang Cocok

#!/usr/bin/tclsh

set s1 "[email protected]" 
set s2 "*@*.com"
puts "Matching pattern s2 in s1"
puts [string match "*@*.com" $s1 ]
puts "Matching pattern tcl in s1"
puts [string match {tcl} $s1]

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Matching pattern s2 in s1
1
Matching pattern tcl in s1
0

Tambahkan Perintah

#!/usr/bin/tclsh

set s1 "Hello" 
append s1 " World"
puts $s1

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Hello World

Perintah format

Tabel berikut menunjukkan daftar penentu format yang tersedia di Tcl -

Penentu Menggunakan
% s Representasi string
% d Representasi bilangan bulat
% f Representasi floating point
% e Representasi floating point dengan bentuk mantissa-eksponen
% x Representasi desimal heksa

Beberapa contoh sederhana diberikan di bawah ini -

#!/usr/bin/tclsh

puts [format "%f" 43.5]
puts [format "%e" 43.5]
puts [format "%d %s" 4 tuts]
puts [format "%s" "Tcl Language"]
puts [format "%x" 40]

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

43.500000
4.350000e+01
4 tuts
Tcl Language
28

Perintah pindai

Perintah scan digunakan untuk mem-parsing string berdasarkan penentu format. Beberapa contoh ditunjukkan di bawah ini.

#!/usr/bin/tclsh

puts [scan "90" {%[0-9]} m]
puts [scan "abc" {%[a-z]} m]
puts [scan "abc" {%[A-Z]} m]
puts [scan "ABC" {%[A-Z]} m]

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

1
1
0
1