Tcl - Chuỗi
Kiểu dữ liệu ban đầu của Tcl là chuỗi và thường chúng ta có thể tìm thấy dấu ngoặc kép trên Tcl dưới dạng ngôn ngữ chỉ chuỗi. Các chuỗi này có thể chứa ký tự chữ và số, chỉ số, Boolean hoặc thậm chí dữ liệu nhị phân. Tcl sử dụng các ký tự unicode 16 bit và các ký tự chữ và số có thể chứa các chữ cái bao gồm các ký tự không phải là ký tự Latinh, số hoặc dấu chấm câu.
Giá trị Boolean có thể được biểu diễn bằng 1, có hoặc đúng đối với đúng và 0, không hoặc sai đối với sai.
Biểu diễn chuỗi
Không giống như các ngôn ngữ khác, trong Tcl, bạn không cần bao gồm dấu ngoặc kép khi nó chỉ là một từ duy nhất. Một ví dụ có thể là -
#!/usr/bin/tclsh
set myVariable hello
puts $myVariable
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
hello
Khi muốn biểu diễn nhiều chuỗi, chúng ta có thể sử dụng dấu ngoặc kép hoặc dấu ngoặc nhọn. Nó được hiển thị bên dưới -
#!/usr/bin/tclsh
set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
hello world
hello world
Chuỗi thoát chuỗi
Một chữ ký tự có thể là một ký tự thuần túy (ví dụ: 'x'), một chuỗi thoát (ví dụ: '\ t') hoặc một ký tự chung (ví dụ: '\ u02C0').
Có một số ký tự nhất định trong Tcl khi chúng đứng trước dấu gạch chéo ngược, chúng sẽ có ý nghĩa đặc biệt và chúng được sử dụng để biểu thị như dòng mới (\ n) hoặc tab (\ t). Tại đây, bạn có danh sách một số mã trình tự thoát như vậy -
Trình tự thoát | Ý nghĩa |
---|---|
\\ | \ tính cách |
\ ' | ' tính cách |
\ " | " tính cách |
\? | ? tính cách |
\ a | Cảnh báo hoặc chuông |
\ b | Backspace |
\ f | Thức ăn dạng |
\ n | Dòng mới |
\ r | Vận chuyển trở lại |
\ t | Tab ngang |
\ v | Tab dọc |
Sau đây là ví dụ để hiển thị một số ký tự thoát -
#!/usr/bin/tclsh
puts "Hello\tWorld\n\nTutorialspoint";
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Hello World
Tutorialspoint
Lệnh chuỗi
Danh sách các lệnh con cho lệnh chuỗi được liệt kê trong bảng sau:
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | compare string1 string2 So sánh chuỗi1 và chuỗi2 từ vựng. Trả về 0 nếu bằng, -1 nếu string1 đứng trước string2, khác 1. |
2 | first string1 string2 Trả về chỉ số xuất hiện đầu tiên của string1 trong string2. Nếu không tìm thấy, trả về -1. |
3 | index chỉ số chuỗi Trả về ký tự tại chỉ mục. |
4 | last string1 string2 Trả về chỉ số lần xuất hiện cuối cùng của string1 trong string2. Nếu không tìm thấy, trả về -1. |
5 | length chuỗi Trả về độ dài của chuỗi. |
6 | match pattern chuỗi Trả về 1 nếu chuỗi khớp với mẫu. |
7 | range string index1 index2 Trả về phạm vi ký tự trong chuỗi từ index1 đến index2. |
số 8 | tolower chuỗi Trả về chuỗi chữ thường. |
9 | toupper chuỗi Trả về chuỗi chữ hoa. |
10 | trim chuỗi ký tự? Loại bỏ các ký tự cắt ở cả hai đầu của chuỗi. Các ký tự cắt mặc định là khoảng trắng. |
11 | trimleft chuỗi ký tự? Loại bỏ các ký tự cắt ở phần đầu bên trái của chuỗi. Các ký tự cắt mặc định là khoảng trắng. |
12 | trimright chuỗi ký tự? Loại bỏ các ký tự cắt ở đầu bên trái của chuỗi. Các ký tự cắt mặc định là khoảng trắng. |
13 | wordend chỉ mục dây tìm kiếm Trả về chỉ mục trong chuỗi tìm ký tự sau từ chứa ký tự tại chỉ mục. |
14 | wordstart chỉ mục dây tìm kiếm Trả về chỉ mục trong chuỗi tìm ký tự đầu tiên trong từ chứa ký tự tại chỉ mục. |
Ví dụ về một số lệnh con chuỗi Tcl thường được sử dụng được đưa ra dưới đây.
So sánh chuỗi
#!/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\'.";
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
-1
String 's1' and 's2' are same.
String 's1' comes before 's2'.
String 's2' comes after 's1'.
Chỉ mục của chuỗi
#!/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]
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
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
Chiều dài của chuỗi
#!/usr/bin/tclsh
set s1 "Hello World"
puts "Length of string s1"
puts [string length $s1]
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Length of string s1
11
Xử lý các trường hợp
#!/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]
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Uppercase string of s1
HELLO WORLD
Lowercase string of s1
hello world
Nhân vật cắt tỉa
#!/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]
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Trim right World in Hello World
Hello
Trim left Hello in Hello World
World
Trim characters s1 on both sides of s2
Hello World
Khớp chuỗi
#!/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]
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Matching pattern s2 in s1
1
Matching pattern tcl in s1
0
Nối lệnh
#!/usr/bin/tclsh
set s1 "Hello"
append s1 " World"
puts $s1
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Hello World
Lệnh định dạng
Bảng sau đây cho thấy danh sách các định dạng có sẵn trong Tcl:
Bộ định danh | Sử dụng |
---|---|
%S | Biểu diễn chuỗi |
% d | Biểu diễn số nguyên |
% f | Biểu diễn dấu chấm động |
% e | Biểu diễn dấu phẩy động với dạng số mũ định trị |
% x | Biểu diễn thập lục phân |
Một số ví dụ đơn giản được đưa ra dưới đây:
#!/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]
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
43.500000
4.350000e+01
4 tuts
Tcl Language
28
Lệnh quét
Lệnh quét được sử dụng để phân tích cú pháp một chuỗi dựa trên mã định dạng. Một số ví dụ được hiển thị bên dưới.
#!/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]
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
1
1
0
1