Tcl - Stringhe
Il tipo di dati primitivo di Tcl è stringa e spesso possiamo trovare virgolette su Tcl come linguaggio solo stringa. Queste stringhe possono contenere caratteri alfanumerici, solo numeri, booleani o anche dati binari. Tcl utilizza caratteri Unicode a 16 bit e i caratteri alfanumerici possono contenere lettere inclusi caratteri non latini, numeri o punteggiatura.
Il valore booleano può essere rappresentato come 1, sì o vero per vero e 0, no o falso per falso.
Rappresentazioni di stringa
A differenza di altre lingue, in Tcl non è necessario includere virgolette doppie quando è solo una singola parola. Un esempio può essere:
#!/usr/bin/tclsh
set myVariable hello
puts $myVariable
Quando il codice sopra viene eseguito, produce il seguente risultato:
hello
Quando vogliamo rappresentare più stringhe, possiamo usare virgolette doppie o parentesi graffe. È mostrato di seguito -
#!/usr/bin/tclsh
set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable
Quando il codice sopra viene eseguito, produce il seguente risultato:
hello world
hello world
Sequenza di escape delle stringhe
Un carattere letterale può essere un carattere semplice (ad esempio, "x"), una sequenza di escape (ad esempio, "\ t") o un carattere universale (ad esempio, "\ u02C0").
Ci sono alcuni caratteri in Tcl quando sono preceduti da una barra rovesciata avranno un significato speciale e sono usati per rappresentare come una nuova riga (\ n) o una tabulazione (\ t). Qui, hai un elenco di alcuni di questi codici di sequenza di escape:
Sequenza di fuga | Senso |
---|---|
\\ | \ personaggio |
\ ' | ' personaggio |
\ " | " personaggio |
\? | ? personaggio |
\un | Allerta o campanello |
\ b | Backspace |
\ f | Avanzamento modulo |
\ n | Nuova linea |
\ r | Ritorno in carrozza |
\ t | Tabulazione orizzontale |
\ v | Tab verticale |
Di seguito è riportato l'esempio per mostrare alcuni caratteri della sequenza di escape:
#!/usr/bin/tclsh
puts "Hello\tWorld\n\nTutorialspoint";
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Hello World
Tutorialspoint
Comando stringa
L'elenco dei sottocomandi per il comando stringa è elencato nella tabella seguente:
Sr.No. | Metodi e descrizione |
---|---|
1 | compare stringa1 stringa2 Confronta lessograficamente stringa1 e stringa2. Restituisce 0 se uguale, -1 se stringa1 viene prima di stringa2, altrimenti 1. |
2 | first stringa1 stringa2 Restituisce la prima occorrenza dell'indice di stringa1 in stringa2. Se non trovato, restituisce -1. |
3 | index indice di stringa Restituisce il carattere all'indice. |
4 | last stringa1 stringa2 Restituisce l'ultima occorrenza dell'indice di stringa1 in stringa2. Se non trovato, restituisce -1. |
5 | length corda Restituisce la lunghezza della stringa. |
6 | match pattern corda Restituisce 1 se la stringa corrisponde al modello. |
7 | range stringa index1 index2 Restituisce l'intervallo di caratteri in stringa da index1 a index2. |
8 | tolower corda Restituisce la stringa minuscola. |
9 | toupper corda Restituisce la stringa maiuscola. |
10 | trim stringa? trimcharacters? Rimuove i caratteri trim su entrambe le estremità della stringa. I caratteri trim predefiniti sono gli spazi bianchi. |
11 | trimleft stringa? trimcharacters? Rimuove i caratteri trim all'inizio della stringa a sinistra. I caratteri trim predefiniti sono gli spazi bianchi. |
12 | trimright stringa? trimcharacters? Rimuove i caratteri trim nell'estremità sinistra della stringa. I caratteri trim predefiniti sono gli spazi bianchi. |
13 | wordend indice findstring Restituisce l'indice in findstring del carattere dopo la parola contenente il carattere in index. |
14 | wordstart indice findstring Restituisce l'indice in findstring del primo carattere nella parola contenente il carattere in index. |
Di seguito vengono forniti esempi di alcuni comandi secondari di stringhe Tcl di uso comune.
Confronto tra stringhe
#!/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\'.";
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
-1
String 's1' and 's2' are same.
String 's1' comes before 's2'.
String 's2' comes after 's1'.
Indice di stringa
#!/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]
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
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
Lunghezza della stringa
#!/usr/bin/tclsh
set s1 "Hello World"
puts "Length of string s1"
puts [string length $s1]
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Length of string s1
11
Casi di manipolazione
#!/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]
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Uppercase string of s1
HELLO WORLD
Lowercase string of s1
hello world
Caratteri di taglio
#!/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]
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Trim right World in Hello World
Hello
Trim left Hello in Hello World
World
Trim characters s1 on both sides of s2
Hello World
Stringhe corrispondenti
#!/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]
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Matching pattern s2 in s1
1
Matching pattern tcl in s1
0
Aggiungi comando
#!/usr/bin/tclsh
set s1 "Hello"
append s1 " World"
puts $s1
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Hello World
Comando di formattazione
La tabella seguente mostra l'elenco degli specificatori di formato disponibili in Tcl -
Specifier | Uso |
---|---|
%S | Rappresentazione di stringa |
% d | Rappresentazione intera |
% f | Rappresentazione in virgola mobile |
% e | Rappresentazione in virgola mobile con forma esponente mantissa |
%X | Rappresentazione decimale esadecimale |
Di seguito vengono forniti alcuni semplici esempi:
#!/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]
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
43.500000
4.350000e+01
4 tuts
Tcl Language
28
Comando di scansione
Il comando di scansione viene utilizzato per analizzare una stringa in base all'identificatore di formato. Di seguito sono riportati alcuni esempi.
#!/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]
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
1
1
0
1