Tôi đang đọc bộ đệm nối tiếp với phương thức readLine(). Chuỗi được trả về bởi readLine() có định dạng "str1: str2". Trong một vòng lặp while khi tôi sử dụng readLine số() lần cho một phản ứng của lệnh cổng nối tiếp tôi nhận được đầu ra kỳ lạ như thế này:Các chuỗi định dạng trong java
String1 : string1
SString11 : String2
StringString2 : String23
String4 : String5
Nhưng tôi cần đầu ra định dạng như dưới đây
String1 : string1
SString11 : String2
StringString2 : String23
String4 : String5
tôi đã sử dụng phương thức tách trên chuỗi và nhận được hai chuỗi được phân tách bằng dấu phân cách là ':'. Nhưng bây giờ tôi cần phải nối thêm String1 với các khoảng trắng để căn chỉnh tất cả các dấu hai chấm.
Tôi xin lỗi Nếu giải thích sự cố của tôi là lạ. Nhưng nếu ai hiểu vấn đề, bạn có thể đề nghị làm thế nào để làm điều đó?
Tôi đã sử dụng String.format() và đã hoạt động. Nhưng một vấn đề khác là ở đó. Vấn đề là tôi đang đặt chuỗi đầu ra trong một cá thể JTextArea. Tôi đã chọn phông chữ là Arial. Khi in như thế này String.format ("% - 30s:% 30s", temp [0], temp [1]); Nó in như Tên hình ảnh: Firmware cơ bản Linux Phiên bản: 2.1.1.17 Trong hai dòng "I" ở trên Hình ảnh và "V" trong phiên bản từ có độ rộng khác nhau trên vùng văn bản. Vì vậy, mặc dù tôi đang sử dụng chuỗi ký tự 30, các dấu hai chấm không được căn chỉnh. Có giải pháp nào cho điều này? –
hãy xem java.awt.FontMetrics (có thể ... đã lâu rồi kể từ khi tôi quan tâm đến chiều rộng của trường văn bản/khu vực :-) – TofuBeer
Bạn cần sử dụng phông chữ như Courier, điều này được gọi là phông chữ 'đơn cách' có nghĩa là tất cả các ký tự đều có chiều rộng bằng nhau. Điều này tất nhiên có nghĩa là nếu các nhân vật của bạn căn chỉnh trong chuỗi, nó cũng sẽ liên kết với ouput. –