Lập trình máy tính - Chuỗi
Trong cuộc thảo luận của chúng tôi về characters, chúng tôi đã biết rằng kiểu dữ liệu ký tự xử lý với một ký tự và bạn có thể gán bất kỳ ký tự nào từ bàn phím của mình cho một biến kiểu ký tự.
Bây giờ, hãy tiến lên trước một chút và xem xét tình huống mà chúng ta cần lưu trữ nhiều hơn một ký tự trong một biến. Chúng ta đã thấy rằng lập trình C không cho phép lưu trữ nhiều hơn một ký tự trong một biến kiểu ký tự. Vì vậy, các câu lệnh sau đây không hợp lệ trong lập trình C và tạo ra lỗi cú pháp:
char ch1 = 'ab';
char ch2 = '10';
Chúng tôi cũng đã thấy cách sử dụng khái niệm arraysđể lưu trữ nhiều hơn một giá trị của kiểu dữ liệu tương tự trong một biến. Đây là cú pháp để lưu trữ và in năm số trong một mảng kiểu 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;
}
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50
Bây giờ, hãy xác định một mảng gồm năm ký tự giống như cách chúng ta đã làm đối với các số và thử in chúng -
#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;
}
}
Ở đây, chúng tôi đã sử dụng% c để in giá trị ký tự. Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
Nếu bạn đã làm xong với ví dụ trên, thì tôi nghĩ bạn đã hiểu cách hoạt động của chuỗi trong lập trình C, bởi vì strings in C are represented as arrays of characters. Lập trình C đã đơn giản hóa việc gán và in các chuỗi. Hãy kiểm tra lại ví dụ tương tự một lần nữa với cú pháp đơn giản -
#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;
}
}
Ở đây, chúng tôi đã sử dụng% s để in giá trị chuỗi đầy đủ bằng tên mảng ch, thực sự là nơi bắt đầu của việc lưu giữ địa chỉ bộ nhớ ch biến như hình dưới đây -
Mặc dù nó không hiển thị trong các ví dụ trên, chương trình C chỉ định nội bộ ký tự null '\0'là ký tự cuối cùng của mọi chuỗi. Nó chỉ ra phần cuối của chuỗi và nó có nghĩa là nếu bạn muốn lưu trữ một chuỗi 5 ký tự trong một mảng, thì bạn phải xác định kích thước mảng là 6 như một cách thực hành tốt, mặc dù C không phàn nàn về điều đó.
Nếu đoạn mã trên được biên dịch và thực thi, nó sẽ tạo ra kết quả sau:
String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
Khái niệm chuỗi cơ bản
Dựa trên thảo luận trên, chúng ta có thể kết luận những điểm quan trọng sau đây về chuỗi trong ngôn ngữ lập trình C:
Các chuỗi trong C được biểu diễn dưới dạng mảng các ký tự.
Chúng ta có thể tạo một chuỗi trong lập trình C bằng cách gán từng ký tự vào một mảng ký tự.
Chúng ta có thể tạo một chuỗi trong lập trình C bằng cách gán một chuỗi hoàn chỉnh trong dấu ngoặc kép.
Chúng ta có thể in một chuỗi ký tự theo từng ký tự bằng cách sử dụng chỉ số con của mảng hoặc một chuỗi hoàn chỉnh bằng cách sử dụng tên mảng không có chỉ số con.
Ký tự cuối cùng của mỗi chuỗi là ký tự rỗng, nghĩa là ‘\0’.
Hầu hết các ngôn ngữ lập trình đều cung cấp các hàm tích hợp để thao tác với các chuỗi, tức là, bạn có thể nối các chuỗi, bạn có thể tìm kiếm từ một chuỗi, bạn có thể trích xuất các chuỗi con từ một chuỗi, v.v. Để biết thêm, bạn có thể xem hướng dẫn chi tiết của chúng tôi về Lập trình C hoặc bất kỳ ngôn ngữ lập trình nào khác.
Chuỗi trong Java
Mặc dù bạn có thể sử dụng mảng ký tự để lưu trữ chuỗi, nhưng Java là một ngôn ngữ lập trình nâng cao và các nhà thiết kế của nó đã cố gắng cung cấp thêm chức năng. Java cung cấp các chuỗi như một kiểu dữ liệu dựng sẵn giống như bất kỳ kiểu dữ liệu nào khác. Nó có nghĩa là bạn có thể xác định chuỗi trực tiếp thay vì xác định chúng dưới dạng mảng ký tự.
Sau đây là chương trình tương đương được viết bằng Java. Java sử dụngnew toán tử để tạo biến chuỗi như trong chương trình sau.
Bạn có thể thử thực hiện chương trình sau để xem kết quả:
public class DemoJava {
public static void main(String []args) {
String str = new String("Hello");
System.out.println( "String = " + str );
}
}
Khi chương trình trên được thực thi, nó tạo ra kết quả sau:
String = Hello
Chuỗi trong Python
Tạo chuỗi trong Python cũng đơn giản như gán một chuỗi vào một biến Python bằng cách sử dụng dấu ngoặc kép hoặc đơn.
Dưới đây là một chương trình đơn giản tạo hai chuỗi và in chúng bằng cách sử dụng hàm print () -
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1 = ", var1
print "var2 = ", var2
Khi chương trình trên được thực thi, nó tạo ra kết quả sau:
var1 = Hello World!
var2 = Python Programming
Python không hỗ trợ kiểu ký tự; chúng được coi là chuỗi có độ dài một, do đó cũng được coi là chuỗi con.
Để truy cập các chuỗi con, hãy sử dụng dấu ngoặc vuông để cắt cùng với chỉ mục hoặc chỉ số để lấy chuỗi con của bạn. Hãy xem đoạn mã sau:
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
var1[0]: H
var2[1:5]: ytho