Bài tập - Khám phá đệm và căn chỉnh
- 12 phút
Phương string.Format() pháp được sử dụng để thực hiện định dạng tổng hợp như trong ví dụ:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
Có vẻ hơi lạ khi một từ khóa đại diện cho kiểu dữ liệu có các phương pháp bạn có thể gọi giống như cách bạn gọi các phương pháp trên lớp Console . Thực tế là có nhiều phương pháp tương tự nhau về kiểu string dữ liệu và bất kỳ chuỗi ký tự hoặc biến số nào của chuỗi kiểu.
Dưới đây là danh sách ngắn gọn về các danh mục các phương pháp tích hợp sẵn này để bạn có thể hiểu được những điều có thể có.
- Phương pháp thêm khoảng trống trống cho mục đích định dạng (
PadLeft(),PadRight()) - Các phương pháp so sánh hai chuỗi hoặc tạo điều kiện cho việc so sánh (
Trim(),TrimStart()TrimEnd(),GetHashcode(), thuộcLengthtính) - Các phương pháp giúp bạn xác định nội dung bên trong chuỗi hoặc thậm chí truy xuất chỉ một phần của chuỗi (
Contains(),StartsWith(),EndsWith(),Substring()) - Phương pháp thay đổi nội dung của chuỗi bằng cách thay thế, chèn hoặc loại bỏ các phần (
Replace(),Insert(),Remove()) - Phương pháp biến một chuỗi thành một mảng chuỗi hoặc ký tự (
Split(),ToCharArray())
Định dạng chuỗi bằng cách thêm khoảng trắng trước hoặc sau
Phương PadLeft() pháp này thêm khoảng trống trắng vào bên trái chuỗi để tổng số ký tự bằng với đối số bạn gửi. Trong trường hợp này, bạn muốn tổng độ dài của chuỗi là 12 ký tự.
Xóa hoặc sử dụng toán tử chú thích
//để nhận xét tất cả mã từ các bài tập trước đó.Cập nhật mã của bạn trong Trình soạn thảo Mã Visual Studio như sau:
string input = "Pad this"; Console.WriteLine(input.PadLeft(12));Trên menu Cài đặt Mã Visual Studio tệp, chọn Lưu tệp. Lưu tệp Program.cs trước khi xây dựng hoặc chạy mã.
Trong pa nen EXPLORER, để mở Một Thiết bị đầu cuối tại vị trí thư mục TestProject của bạn, hãy bấm chuột phải vào TestProject, sau đó chọn Mở trong Thiết bị đầu cuối tích hợp. Một bảng điều khiển đầu cuối nên mở ra, và nên bao gồm một dấu nhắc lệnh cho thấy rằng thiết bị đầu cuối được mở vào vị trí thư mục TestProject của bạn.
Tại dấu nhắc lệnh Thiết bị đầu cuối, để chạy mã của bạn, hãy dotnet chạy rồi nhấn Enter.
Ghi
Nếu bạn thấy thông báo cho biết "Không thể tìm thấy dự án để chạy", hãy đảm bảo rằng dấu nhắc lệnh Thiết bị đầu cuối hiển thị vị trí thư mục TestProject dự kiến. Ví dụ:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Khi bạn chạy mã, bạn quan sát bốn ký tự có tiền tố ở bên trái của chuỗi sẽ kéo dài tới 12 ký tự.
Pad thisĐể thêm khoảng trắng hoặc ký tự vào bên phải chuỗi của bạn, hãy sử dụng phương pháp
PadRight()thay vào đó. 1. Cập nhật mã của bạn trong Trình soạn thảo Mã Visual Studio như sau:Console.WriteLine(input.PadRight(12));Lưu tệp mã của bạn, sau đó sử dụng Mã Visual Studio để chạy mã của bạn. Bạn sẽ không quan sát bất kỳ ký tự nào được thêm vào cuối chuỗi, nhưng chúng ở đó.
Phương pháp quá tải là gì?
Trong C#, một phương pháp quá tải là một phiên bản khác của một phương pháp với các đối số khác nhau hoặc bổ sung sửa đổi chức năng của phương pháp một chút, PadLeft() như trường hợp với phiên bản quá tải của phương pháp.
Bạn cũng có thể gọi một phiên bản thứ hai quá tải của phương pháp và vượt qua trong bất kỳ ký tự nào bạn muốn sử dụng thay vì một khoảng trắng. Trong trường hợp này, bạn điền ký tự gạch nối vào khoảng trống thừa.
Xóa hoặc sử dụng toán tử chú
//thích dòng để nhận xét tất cả mã từ bước trước đó.Cập nhật mã của bạn trong Trình soạn thảo Mã Visual Studio như sau:
Console.WriteLine(input.PadLeft(12, '-')); Console.WriteLine(input.PadRight(12, '-'));Lưu tệp mã của bạn, sau đó sử dụng Mã Visual Studio để chạy mã của bạn. Bạn sẽ thấy bốn dấu gạch nối có tiền tố bên trái của chuỗi dài 12 ký tự.
----Pad this Pad this----
Bây giờ, áp dụng kiến thức mới này cho một kịch bản thế giới thực khác.
Làm việc với chuỗi được đệm
Giả sử bạn làm việc cho một công ty xử lý thanh toán vẫn hỗ trợ hệ thống khung chính cũ. Thông thường, các hệ thống đó yêu cầu dữ liệu phải được nhập vào các cột cụ thể. Ví dụ: lưu ID Thanh toán trong các cột từ 1 đến 6, tên của người nhận thanh toán trong cột 7 đến 30 và Số tiền Thanh toán trong các cột 31 đến 40. Ngoài ra, quan trọng là Số tiền Thanh toán được căn phải.
Bạn được yêu cầu xây dựng một ứng dụng sẽ chuyển đổi dữ liệu trong hệ thống quản lý cơ sở dữ liệu quan hệ sang định dạng tệp thừa tự. Để đảm bảo rằng việc tích hợp hoạt động chính xác, bước đầu tiên là xác nhận định dạng tệp bằng cách cung cấp cho các nhà duy trì hệ thống kế thừa một mẫu của đầu ra. Sau đó, bạn xây dựng dựa trên công việc này để gửi hàng trăm hoặc hàng ngàn khoản thanh toán sẽ được xử lý thông qua tệp văn bản ASCII.
Thêm ID Thanh toán vào đầu ra
Để bắt đầu, hãy in ID Thanh toán trong sáu cột đầu tiên. Bạn chọn một số dữ liệu thanh toán ngẫu nhiên phải phù hợp cho các mục đích.
Xóa hoặc sử dụng toán tử chú
//thích dòng để nhận xét tất cả mã từ bước trước đó.Cập nhật mã của bạn trong Trình soạn thảo Mã Visual Studio như sau:
string paymentId = "769C"; var formattedLine = paymentId.PadRight(6); Console.WriteLine(formattedLine);Sử dụng lại biến
formattedLineđể xây dựng chuỗi đầu ra.Lưu tệp mã của bạn, sau đó sử dụng Mã Visual Studio để chạy mã của bạn. Bạn sẽ thấy đầu ra sau đây:
769C
Có hai khoảng trống ở bên phải không hiển thị. Bạn sẽ xác nhận rằng chúng tồn tại trong bước tiếp theo.
Thêm tên người nhận thanh toán vào đầu ra
Tiếp theo, bạn thêm một Tên người nhận thanh toán hư cấu, đệm nó một cách thích hợp.
Cập nhật mã của bạn trong Trình soạn thảo Mã Visual Studio như sau:
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); Console.WriteLine(formattedLine);Toán
+=tử thực hiện ghép nối chuỗi, lấyformattedLinegiá trị trước đó của biến và thêm giá trị mới vào đó. Đó là một đoạn mã rút gọn tương đương với ví dụ về mã sau đây:formattedLine = formattedLine + payeeName.PadRight(24);Lưu tệp mã của bạn, sau đó sử dụng Mã Visual Studio để chạy mã của bạn. Bạn sẽ thấy đầu ra sau đây:
769C Mr. Stephen Ortega
Một lần nữa, có khá nhiều khoảng trống sau Tên người nhận thanh toán. Ngoài ra, có hai khoảng trống sau ID Thanh toán từ Bước 1.
Thêm số tiền thanh toán vào đầu ra
Tiếp theo, thêm Một Số tiền Thanh toán hư cấu và đảm bảo sử dụng PadLeft() để căn phải đầu ra.
Cập nhật mã của bạn trong Trình soạn thảo Mã Visual Studio như sau:
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; string paymentAmount = "$5,000.00"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); formattedLine += paymentAmount.PadLeft(10); Console.WriteLine(formattedLine);Lưu tệp mã của bạn, sau đó sử dụng Mã Visual Studio để chạy mã của bạn. Bạn sẽ thấy đầu ra sau đây:
769C Mr. Stephen Ortega $5,000.00
Đầu ra này là khá gần với những gì bạn hiểu các nhà duy trì hệ thống kế thừa đang tìm kiếm.
Thêm một dòng số ở trên đầu ra để dễ dàng xác nhận kết quả hơn
Vì thật khó để đếm chính xác các cột nơi từng thành phần dữ liệu xuất hiện, bạn hãy thêm một đường thẳng phía trên đầu ra giúp bạn đếm số cột.
Console.WriteLine("1234567890123456789012345678901234567890");
Cập nhật mã của bạn trong Trình soạn thảo Mã Visual Studio như sau:
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; string paymentAmount = "$5,000.00"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); formattedLine += paymentAmount.PadLeft(10); Console.WriteLine("1234567890123456789012345678901234567890"); Console.WriteLine(formattedLine);Lưu tệp mã của bạn, sau đó sử dụng Mã Visual Studio để chạy mã của bạn. Bạn sẽ thấy đầu ra sau đây, mà bạn có thể gửi cho người duy trì của hệ thống thừa tự để xác nhận việc tích hợp mới hoạt động chính xác:
1234567890123456789012345678901234567890 769C Mr. Stephen Ortega $5,000.00
Sự thành công!
Recap
Có một số đối tượng mang đi quan trọng từ đơn vị này.
- Kiểu
stringdữ liệu, chuỗi ký tự và biến số của chuỗi kiểu mà mỗi chuỗi thực hiện nhiều phương pháp trợ giúp để định dạng, sửa đổi và thực hiện các thao tác khác trên chuỗi. - Các
PadLeft()phương phápPadRight()và thêm khoảng trắng (hoặc tùy chọn, một ký tự khác) vào tổng chiều dài của một chuỗi. - Dùng
PadLeft()để căn phải một chuỗi. - Một số phương pháp bị quá tải, có nghĩa là chúng có nhiều phiên bản của phương pháp với các đối số khác nhau ảnh hưởng đến chức năng của chúng.
- Toán
+=tử ghép chuỗi mới ở bên phải chuỗi hiện có ở bên trái.