Tôi gặp sự cố khi sử dụng đối tượng java.text.MessageFormat.Java MessageFormat - Làm thế nào tôi có thể chèn các giá trị giữa các dấu nháy đơn?
Tôi đang cố tạo câu lệnh chèn SQL. Vấn đề là, khi tôi làm điều gì đó như thế này:
MessageFormat messageFormat = "insert into {0} values ('{1}', '{2}', '{3}', {4})";
Object[] args = { str0, str1, str2, str3, str4 };
String result = messageFormat.format(args);
tôi có được điều này cho giá trị của result
:
"insert into <str0> values ({1}, {2}, {3}, <str4>)"
Như bạn có thể thấy, vấn đề là một trong các vị trí mục tiêu mà kèm theo dấu nháy đơn không được thay thế bởi các đối số. Tôi đã thử sử dụng các dấu ngoặc kép đơn như sau: ''{1}''
và các ký tự thoát như sau: \'{1}\'
nhưng vẫn mang lại kết quả tương tự.
chỉnh sửa: Tôi quên đề cập đến rằng tôi cũng đã thử '''{1}'''
. Kết quả là: "insert into <str0> values ('{1}', '{2}', '{3}', <str4>)"
. Nó đang giữ dấu ngoặc kép ban đầu nhưng vẫn không chèn các giá trị.
Tôi làm cách nào để giải quyết vấn đề này? Đối với hồ sơ, tôi đang sử dụng JDK 6u7.
Chỉ ra rằng ''' {0} ''' hoạt động sau khi tất cả. Tôi chỉ cần làm sạch toàn bộ thư mục xây dựng của mình, vì quá trình xây dựng của tôi không được cập nhật chính xác và tôi đã không nhận ra nó. Rất tiếc! –
[Câu trả lời này] (http://stackoverflow.com/questions/17569608/format-a-message-using-messageformat-format-in-java#17569639) giải thích lý do tại sao báo giá bổ sung là cần thiết. –