2010-03-11 71 views
14

Lua có cung cấp chức năng để tạo ký tự đầu tiên trong chữ hoa (như ucfirst trong php) và nếu có, cách sử dụng?Ký tự đầu tiên viết hoa Lua

Tôi muốn keywords[1] là chữ hoa đầu tiên. Tôi đã đọc rằng string.upper hiện nó nhưng nó làm cho toàn bộ chữ hoa.

Trả lời

27

Có một số công thức nấu ăn chuỗi hữu ích here, bao gồm cả công thức này. Để thay đổi các ký tự đầu tiên trong một chuỗi sang chữ hoa, bạn có thể sử dụng:

function firstToUpper(str) 
    return (str:gsub("^%l", string.upper)) 
end 
+0

Cảm ơn! Hoạt động tuyệt vời – Tomek

+0

@GrasDouble Vui lòng không chỉnh sửa mã của người khác trừ khi đó chỉ là thay đổi định dạng. Chỉnh sửa của bạn (loại bỏ các dấu ngoặc đơn) thay đổi hành vi của hàm và làm cho nó không chính xác (nó làm cho hàm trả về hai giá trị thay vì một giá trị). – interjay

+0

Xin lỗi, tôi vừa bị bắt bởi [this gotcha] (http://www.luafaq.org/gotchas.html#T8.1) (thực sự nguy hiểm). Trường hợp 'gsub' thậm chí còn được ghi lại ở phần cuối của phần. –

7

này cũng hoạt động: s:sub(1,1):upper()..s:sub(2)

+0

phiên bản của interjay không hoạt động trong LÖVE (love2d), mặt khác hoạt động rất tốt. – modiX

Các vấn đề liên quan