การเขียนโปรแกรมคอมพิวเตอร์ - สตริง
ในระหว่างการอภิปรายของเราเกี่ยวกับ charactersเราได้เรียนรู้ว่าประเภทข้อมูลอักขระเกี่ยวข้องกับอักขระตัวเดียวและคุณสามารถกำหนดอักขระใดก็ได้จากแป้นพิมพ์ของคุณไปยังตัวแปรประเภทอักขระ
ตอนนี้เรามาดูสถานการณ์ที่เราต้องเก็บอักขระมากกว่าหนึ่งตัวไว้ในตัวแปร เราได้เห็นแล้วว่าการเขียนโปรแกรมภาษาซีไม่อนุญาตให้เก็บอักขระมากกว่าหนึ่งตัวในตัวแปรชนิดอักขระ ดังนั้นข้อความต่อไปนี้ไม่ถูกต้องในการเขียนโปรแกรม C และสร้างข้อผิดพลาดทางไวยากรณ์ -
char ch1 = 'ab';
char ch2 = '10';
เรายังได้เห็นวิธีการใช้แนวคิดของ arraysเพื่อเก็บค่าประเภทข้อมูลที่คล้ายกันมากกว่าหนึ่งค่าในตัวแปร นี่คือไวยากรณ์ในการจัดเก็บและพิมพ์ตัวเลขห้าตัวในอาร์เรย์ประเภท int -
#include <stdio.h>
main() {
int number[5] = {10, 20, 30, 40, 50};
int i = 0;
while( i < 5 ) {
printf("number[%d] = %d\n", i, number[i] );
i = i + 1;
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50
ตอนนี้เรามากำหนดอาร์เรย์ของอักขระห้าตัวในลักษณะเดียวกับที่เราทำสำหรับตัวเลขและลองพิมพ์ -
#include <stdio.h>
main() {
char ch[5] = {'H', 'e', 'l', 'l', 'o'};
int i = 0;
while( i < 5 ) {
printf("ch[%d] = %c\n", i, ch[i] );
i = i + 1;
}
}
ที่นี่เราใช้% c เพื่อพิมพ์ค่าอักขระ เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
หากคุณทำตามตัวอย่างข้างต้นแล้วฉันคิดว่าคุณเข้าใจวิธีการทำงานของสตริงในการเขียนโปรแกรม C เพราะ strings in C are represented as arrays of characters. การเขียนโปรแกรม C ทำให้การกำหนดและการพิมพ์สตริงง่ายขึ้น ลองตรวจสอบตัวอย่างเดียวกันอีกครั้งด้วยไวยากรณ์ที่เรียบง่าย -
#include <stdio.h>
main() {
char ch[5] = "Hello";
int i = 0;
/* Print as a complete string */
printf("String = %s\n", ch);
/* Print character by character */
while( i < 5 ) {
printf("ch[%d] = %c\n", i, ch[i] );
i = i + 1;
}
}
ที่นี่เราใช้% s เพื่อพิมพ์ค่าสตริงเต็มโดยใช้ชื่ออาร์เรย์ chซึ่งเป็นจุดเริ่มต้นของการเก็บแอดเดรสหน่วยความจำ ch ตัวแปรตามที่แสดงด้านล่าง -
แม้ว่าจะมองไม่เห็นจากตัวอย่างข้างต้น แต่โปรแกรม C จะกำหนดอักขระว่างภายใน '\0'เป็นอักขระสุดท้ายของทุกสตริง มันระบุจุดสิ้นสุดของสตริงและหมายความว่าหากคุณต้องการจัดเก็บสตริงอักขระ 5 ตัวในอาร์เรย์คุณต้องกำหนดขนาดอาร์เรย์เป็น 6 เป็นแนวทางปฏิบัติที่ดีแม้ว่า C จะไม่บ่นเกี่ยวกับมันก็ตาม
หากมีการคอมไพล์และเรียกใช้โค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
แนวคิดสตริงพื้นฐาน
จากการอภิปรายข้างต้นเราสามารถสรุปประเด็นสำคัญต่อไปนี้เกี่ยวกับสตริงในภาษาโปรแกรมซี -
สตริงใน C แสดงเป็นอาร์เรย์ของอักขระ
เราสามารถสร้างสตริงในการเขียนโปรแกรม C ได้โดยกำหนดอักขระทีละอักขระลงในอาร์เรย์ของอักขระ
เราสามารถสร้างสตริงในการเขียนโปรแกรม C โดยกำหนดสตริงที่สมบูรณ์ที่อยู่ในเครื่องหมายคำพูดคู่
เราสามารถพิมพ์อักขระสายอักขระโดยใช้ตัวห้อยอาร์เรย์หรือสตริงที่สมบูรณ์โดยใช้ชื่ออาร์เรย์โดยไม่มีตัวห้อย
อักขระสุดท้ายของทุกสตริงเป็นอักขระว่างกล่าวคือ ‘\0’.
ภาษาการเขียนโปรแกรมส่วนใหญ่มีฟังก์ชันในตัวเพื่อจัดการกับสตริงกล่าวคือคุณสามารถต่อสตริงคุณสามารถค้นหาจากสตริงคุณสามารถแยกสตริงย่อยออกจากสตริงเป็นต้นสำหรับข้อมูลเพิ่มเติมคุณสามารถตรวจสอบบทช่วยสอนโดยละเอียดของเราได้ที่ การเขียนโปรแกรมภาษาซีหรือภาษาโปรแกรมอื่น ๆ
สตริงใน Java
แม้ว่าคุณจะสามารถใช้อาร์เรย์อักขระเพื่อจัดเก็บสตริงได้ แต่ Java เป็นภาษาการเขียนโปรแกรมขั้นสูงและผู้ออกแบบพยายามจัดหาฟังก์ชันเพิ่มเติม Java จัดเตรียมสตริงเป็นชนิดข้อมูลในตัวเหมือนกับชนิดข้อมูลอื่น ๆ หมายความว่าคุณสามารถกำหนดสตริงได้โดยตรงแทนที่จะกำหนดเป็นอาร์เรย์ของอักขระ
ต่อไปนี้เป็นโปรแกรมเทียบเท่าที่เขียนด้วย Java Java ใช้ประโยชน์จากไฟล์new ตัวดำเนินการเพื่อสร้างตัวแปรสตริงดังที่แสดงในโปรแกรมต่อไปนี้
คุณสามารถลองรันโปรแกรมต่อไปนี้เพื่อดูผลลัพธ์ -
public class DemoJava {
public static void main(String []args) {
String str = new String("Hello");
System.out.println( "String = " + str );
}
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
String = Hello
สตริงใน Python
การสร้างสตริงใน Python ทำได้ง่ายเพียงแค่กำหนดสตริงให้กับตัวแปร Python โดยใช้เครื่องหมายคำพูดเดี่ยวหรือคู่
ด้านล่างนี้เป็นโปรแกรมง่ายๆที่สร้างสองสตริงและพิมพ์โดยใช้ฟังก์ชัน print () -
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1 = ", var1
print "var2 = ", var2
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
var1 = Hello World!
var2 = Python Programming
Python ไม่รองรับประเภทอักขระ สิ่งเหล่านี้ถือว่าเป็นสตริงที่มีความยาวหนึ่งดังนั้นจึงถือว่าเป็นสตริงย่อย
ในการเข้าถึงสตริงย่อยให้ใช้วงเล็บเหลี่ยมสำหรับการแบ่งส่วนพร้อมกับดัชนีหรือดัชนีเพื่อรับสตริงย่อยของคุณ ดูส่วนรหัสต่อไปนี้ -
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
var1[0]: H
var2[1:5]: ytho