Pemrograman D - String

D menyediakan dua jenis representasi string berikut -

  • Array karakter
  • String bahasa inti

Array Karakter

Kami dapat mewakili array karakter di salah satu dari dua bentuk seperti yang ditunjukkan di bawah ini. Formulir pertama memberikan ukuran secara langsung dan formulir kedua menggunakan metode dup yang membuat salinan string "Selamat pagi" yang dapat ditulis.

char[9]  greeting1 = "Hello all"; 
char[] greeting2 = "Good morning".dup;

Contoh

Berikut adalah contoh sederhana menggunakan formulir array karakter sederhana di atas.

import std.stdio;

void main(string[] args) { 
   char[9] greeting1 = "Hello all"; 
   writefln("%s",greeting1); 

   char[] greeting2 = "Good morning".dup; 
   writefln("%s",greeting2); 
}

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

Hello all 
Good morning

String Bahasa Inti

String adalah bawaan dari bahasa inti D. String ini dapat dioperasikan dengan array karakter yang ditunjukkan di atas. Contoh berikut menunjukkan representasi string sederhana.

string greeting1 = "Hello all";

Contoh

import std.stdio;

void main(string[] args) { 
   string greeting1 = "Hello all"; 
   writefln("%s",greeting1);  
   
   char[] greeting2 = "Good morning".dup; 
   writefln("%s",greeting2);  
   
   string greeting3 = greeting1; 
   writefln("%s",greeting3); 
}

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

Hello all 
Good morning 
Hello all

Penggabungan String

Rangkaian string dalam pemrograman D menggunakan simbol tilde (~).

Contoh

import std.stdio;

void main(string[] args) { 
   string greeting1 = "Good"; 
   char[] greeting2 = "morning".dup; 
   
   char[] greeting3 = greeting1~" "~greeting2; 
   writefln("%s",greeting3); 
   
   string greeting4 = "morning"; 
   string greeting5 = greeting1~" "~greeting4; 
   writefln("%s",greeting5); 
}

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

Good morning 
Good morning

Panjang String

Panjang string dalam byte dapat diambil dengan bantuan fungsi panjang.

Contoh

import std.stdio;  

void main(string[] args) { 
   string greeting1 = "Good"; 
   writefln("Length of string greeting1 is %d",greeting1.length); 
   
   char[] greeting2 = "morning".dup;        
   writefln("Length of string greeting2 is %d",greeting2.length); 
}

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

Length of string greeting1 is 4 
Length of string greeting2 is 7

Perbandingan String

Perbandingan string cukup mudah dalam pemrograman D. Anda dapat menggunakan operator ==, <, dan> untuk perbandingan string.

Contoh

import std.stdio; 
 
void main() { 
   string s1 = "Hello"; 
   string s2 = "World";
   string s3 = "World";
   
   if (s2 == s3) { 
      writeln("s2: ",s2," and S3: ",s3, "  are the same!"); 
   }
   
   if (s1 < s2) { 
      writeln("'", s1, "' comes before '", s2, "'."); 
   } else { 
      writeln("'", s2, "' comes before '", s1, "'."); 
   }
}

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

s2: World and S3: World are the same! 
'Hello' comes before 'World'.

Mengganti String

Kita bisa mengganti string menggunakan string [].

Contoh

import std.stdio; 
import std.string; 
 
void main() {
   char[] s1 = "hello world ".dup; 
   char[] s2 = "sample".dup;
   
   s1[6..12] = s2[0..6]; 
   writeln(s1);
}

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

hello sample

Metode Indeks

Metode indeks untuk lokasi substring dalam string termasuk indexOf dan lastIndexOf dijelaskan dalam contoh berikut.

Contoh

import std.stdio;
import std.string;

void main() { 
   char[] s1 = "hello World ".dup; 
    
   writeln("indexOf of llo in hello is ",std.string.indexOf(s1,"llo")); 
   writeln(s1); 
   writeln("lastIndexOf of O in hello is " ,std.string.lastIndexOf(s1,"O",CaseSensitive.no));
}

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

indexOf.of llo in hello is 2 
hello World  
lastIndexOf of O in hello is 7

Menangani Kasus

Metode yang digunakan untuk mengubah kasus ditunjukkan pada contoh berikut.

Contoh

import std.stdio;
import std.string;

void main() { 
   char[] s1 = "hello World ".dup; 
   writeln("Capitalized string of s1 is ",capitalize(s1)); 
    
   writeln("Uppercase string of s1 is ",toUpper(s1)); 
    
   writeln("Lowercase string of s1 is ",toLower(s1));   
}

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

Capitalized string of s1 is Hello world  
Uppercase string of s1 is HELLO WORLD  
Lowercase string of s1 is hello world

Membatasi Karakter

Karakter pembatas dalam string ditunjukkan pada contoh berikut.

Contoh

import std.stdio;
import std.string;

void main() { 
   string s = "H123Hello1";  
   
   string result = munch(s, "0123456789H"); 
   writeln("Restrict trailing characters:",result);  
   
   result = squeeze(s, "0123456789H"); 
   writeln("Restrict leading characters:",result); 
   
   s = "  Hello World  "; 
   writeln("Stripping leading and trailing whitespace:",strip(s)); 
}

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

Restrict trailing characters:H123H 
Restrict leading characters:ello1 
Stripping leading and trailing whitespace:Hello World