การเขียนโปรแกรม 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