การเขียนโปรแกรม D - สตริง

D แสดงการแสดงสตริงสองประเภทดังต่อไปนี้ -

  • อาร์เรย์อักขระ
  • สตริงภาษาหลัก

อาร์เรย์อักขระ

เราสามารถแสดงอาร์เรย์อักขระในหนึ่งในสองรูปแบบดังที่แสดงด้านล่าง รูปแบบแรกระบุขนาดโดยตรงและรูปแบบที่สองใช้วิธีการ dup ซึ่งสร้างสำเนาที่เขียนได้ของสตริง "สวัสดีตอนเช้า"

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

ตัวอย่าง

นี่คือตัวอย่างง่ายๆโดยใช้รูปแบบอาร์เรย์อักขระง่ายๆข้างต้น

import std.stdio;

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

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

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

Hello all 
Good morning

สตริงภาษาหลัก

สตริงถูกสร้างขึ้นในภาษาหลักของ D. สตริงเหล่านี้ทำงานร่วมกันได้กับอาร์เรย์อักขระที่แสดงด้านบน ตัวอย่างต่อไปนี้แสดงการแสดงสตริงอย่างง่าย

string greeting1 = "Hello all";

ตัวอย่าง

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); 
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

Hello all 
Good morning 
Hello all

การต่อสายอักขระ

การต่อสายอักขระในการเขียนโปรแกรม D ใช้สัญลักษณ์ tilde (~)

ตัวอย่าง

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); 
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

Good morning 
Good morning

ความยาวของสตริง

ความยาวของสตริงเป็นไบต์สามารถดึงข้อมูลได้ด้วยความช่วยเหลือของความยาว fuction

ตัวอย่าง

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); 
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

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

การเปรียบเทียบสตริง

การเปรียบเทียบสตริงนั้นค่อนข้างง่ายในการเขียนโปรแกรม D คุณสามารถใช้ตัวดำเนินการ ==, <และ> สำหรับการเปรียบเทียบสตริง

ตัวอย่าง

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, "'."); 
   }
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

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

การเปลี่ยนสตริง

เราสามารถแทนที่สตริงโดยใช้สตริง []

ตัวอย่าง

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);
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

hello sample

วิธีการจัดทำดัชนี

วิธีการทำดัชนีสำหรับตำแหน่งของสตริงย่อยในสตริงรวมถึง indexOf และ lastIndexOf จะอธิบายในตัวอย่างต่อไปนี้

ตัวอย่าง

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));
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

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

การจัดการกรณี

วิธีการที่ใช้ในการเปลี่ยนเคสจะแสดงในตัวอย่างต่อไปนี้

ตัวอย่าง

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));   
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

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

การ จำกัด อักขระ

การวางตัวอักขระในสตริงจะแสดงในตัวอย่างต่อไปนี้

ตัวอย่าง

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)); 
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

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