LISP - String
String dalam Common Lisp adalah vektor, yaitu larik karakter satu dimensi.
Literal string diapit tanda kutip ganda. Setiap karakter yang didukung oleh kumpulan karakter dapat diapit dalam tanda kutip ganda untuk membuat string, kecuali karakter tanda kutip ganda (") dan karakter escape (\). Namun, Anda dapat menyertakannya dengan meng-escape dengan garis miring terbalik (\).
Contoh
Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.
(write-line "Hello World")
(write-line "Welcome to Tutorials Point")
;escaping the double quote character
(write-line "Welcome to \"Tutorials Point\"")
Saat Anda menjalankan kode, ia mengembalikan hasil berikut -
Hello World
Welcome to Tutorials Point
Welcome to "Tutorials Point"
Fungsi Perbandingan String
Fungsi dan operator perbandingan numerik, seperti, <dan> tidak berfungsi pada string. LISP umum menyediakan dua set fungsi lain untuk membandingkan string dalam kode Anda. Satu set peka huruf besar-kecil dan yang lainnya tidak peka huruf besar-kecil.
Tabel berikut menyediakan fungsi -
Fungsi Peka Huruf Besar-Kecil | Fungsi tidak peka huruf besar / kecil | Deskripsi |
---|---|---|
string = | string-sama | Memeriksa apakah nilai operan semua sama atau tidak, jika ya maka kondisi menjadi benar. |
string / = | string-tidak sama | Memeriksa apakah nilai operan semua berbeda atau tidak, jika nilai tidak sama maka kondisi menjadi benar. |
string < | string-lessp | Memeriksa apakah nilai operan menurun secara monoton. |
string> | string-lebih besar | Memeriksa apakah nilai operan meningkat secara monoton. |
string <= | string-tidak-lebih besar | Memeriksa apakah nilai setiap operan kiri lebih besar dari atau sama dengan nilai operan kanan berikutnya, jika ya maka kondisi menjadi benar. |
string> = | string-not-lessp | Memeriksa apakah nilai operan kiri kurang dari atau sama dengan nilai operan kanannya, jika ya maka kondisi menjadi benar. |
Contoh
Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.
; case-sensitive comparison
(write (string= "this is test" "This is test"))
(terpri)
(write (string> "this is test" "This is test"))
(terpri)
(write (string< "this is test" "This is test"))
(terpri)
;case-insensitive comparision
(write (string-equal "this is test" "This is test"))
(terpri)
(write (string-greaterp "this is test" "This is test"))
(terpri)
(write (string-lessp "this is test" "This is test"))
(terpri)
;checking non-equal
(write (string/= "this is test" "this is Test"))
(terpri)
(write (string-not-equal "this is test" "This is test"))
(terpri)
(write (string/= "lisp" "lisping"))
(terpri)
(write (string/= "decent" "decency"))
Saat Anda menjalankan kode, ia mengembalikan hasil berikut -
NIL
0
NIL
T
NIL
NIL
8
NIL
4
5
Fungsi Pengendalian Kasus
Tabel berikut menjelaskan fungsi pengendalian kasus -
Sr.No. | Deskripsi fungsi |
---|---|
1 | string-upcase Mengonversi string menjadi huruf besar |
2 | string-downcase Mengonversi string menjadi huruf kecil |
3 | string-capitalize Kapitalisasi setiap kata dalam string |
Contoh
Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.
(write-line (string-upcase "a big hello from tutorials point"))
(write-line (string-capitalize "a big hello from tutorials point"))
Saat Anda menjalankan kode, ia mengembalikan hasil berikut -
A BIG HELLO FROM TUTORIALS POINT
A Big Hello From Tutorials Point
Memangkas String
Tabel berikut menjelaskan fungsi pemangkasan string -
Sr.No. | Deskripsi fungsi |
---|---|
1 | string-trim Ini mengambil string karakter sebagai argumen pertama dan string sebagai argumen kedua dan mengembalikan substring di mana semua karakter yang ada di argumen pertama dihapus dari string argumen. |
2 | String-left-trim Ini mengambil string karakter sebagai argumen pertama dan string sebagai argumen kedua dan mengembalikan substring di mana semua karakter yang ada di argumen pertama dihapus dari awal string argumen. |
3 | String-right-trim Ini mengambil karakter string sebagai argumen pertama dan string sebagai argumen kedua dan mengembalikan substring di mana semua karakter yang ada di argumen pertama dihapus dari akhir string argumen. |
Contoh
Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.
(write-line (string-trim " " " a big hello from tutorials point "))
(write-line (string-left-trim " " " a big hello from tutorials point "))
(write-line (string-right-trim " " " a big hello from tutorials point "))
(write-line (string-trim " a" " a big hello from tutorials point "))
Saat Anda menjalankan kode, ia mengembalikan hasil berikut -
a big hello from tutorials point
a big hello from tutorials point
a big hello from tutorials point
big hello from tutorials point
Fungsi String Lainnya
String dalam LISP adalah array dan juga urutan. Kami akan membahas tipe data ini dalam tutorial mendatang. Semua fungsi yang berlaku untuk array dan urutan juga berlaku untuk string. Namun, kami akan mendemonstrasikan beberapa fungsi yang umum digunakan menggunakan berbagai contoh.
Menghitung Panjang
Itu length fungsi menghitung panjang string.
Mengekstrak Sub-string
Itu subseq fungsi mengembalikan sub-string (sebagai string juga merupakan urutan) mulai dari indeks tertentu dan melanjutkan ke indeks akhir tertentu atau akhir string.
Mengakses Karakter dalam String
Itu char fungsi memungkinkan mengakses karakter individu dari sebuah string.
Example
Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.
(write (length "Hello World"))
(terpri)
(write-line (subseq "Hello World" 6))
(write (char "Hello World" 6))
Saat Anda menjalankan kode, ia mengembalikan hasil berikut -
11
World
#\W
Menyortir dan Menggabungkan String
Itu sortfungsi memungkinkan pengurutan string. Dibutuhkan urutan (vektor atau string) dan predikat dua argumen dan mengembalikan versi urutan yang diurutkan.
Itu merge Fungsi mengambil dua urutan dan predikat dan mengembalikan urutan yang dihasilkan dengan menggabungkan dua urutan, sesuai dengan predikatnya.
Example
Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.
;sorting the strings
(write (sort (vector "Amal" "Akbar" "Anthony") #'string<))
(terpri)
;merging the strings
(write (merge 'vector (vector "Rishi" "Zara" "Priyanka")
(vector "Anju" "Anuj" "Avni") #'string<))
Saat Anda menjalankan kode, ia mengembalikan hasil berikut -
#("Akbar" "Amal" "Anthony")
#("Anju" "Anuj" "Avni" "Rishi" "Zara" "Priyanka")
Membalikkan String
Itu reverse fungsi membalikkan string.
Misalnya, Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.
(write-line (reverse "Are we not drawn onward, we few, drawn onward to new era"))
Saat Anda menjalankan kode, ia mengembalikan hasil berikut -
are wen ot drawno nward ,wef ew ,drawno nward ton ew erA
String Penggabungan
Fungsi penggabungan menggabungkan dua string. Ini adalah fungsi urutan umum dan Anda harus memberikan tipe hasil sebagai argumen pertama.
Misalnya, Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.
(write-line (concatenate 'string "Are we not drawn onward, " "we few, drawn onward to new era"))
Saat Anda menjalankan kode, ia mengembalikan hasil berikut -
Are we not drawn onward, we few, drawn onward to new era