Viết hoa một chuỗi ký tự

Lua:
Viết hoa một chuỗi ký tự

Làm sao:

Lua không có hàm viết hoa sẵn, vì vậy chúng ta hãy tạo một hàm:

function capitalize(str)
  return (str:gsub("(%l)(%w*)", function(first, rest) return first:upper()..rest end))
end

print(capitalize("hello world"))  -- Đầu ra: Hello World

Thảo luận sâu hơn

Các hàm viết hoa là chuẩn trong nhiều ngôn ngữ lập trình. Trong Lua, chúng ta tạo một hàm sử dụng string.gsub(), một hàm phù hợp mẫu mạnh mẽ. Hàm capitalize tùy chỉnh của chúng ta sử dụng một mẫu để tìm các chữ cái thường (%l) theo sau là không hoặc nhiều ký tự từ (%w*), và thay thế chúng bằng chữ cái viết hoa và phần còn lại của từ.

-- Đây là một cách khác để chỉ viết hoa từ đầu tiên
function capitalizeFirst(str)
  if str == "" then return str end
  return str:sub(1, 1):upper()..str:sub(2)
end

Khả năng phù hợp mẫu của Lua không mạnh mẽ như biểu thức chính quy đầy đủ nhưng phù hợp cho nhiều tác vụ thao tác chuỗi. Lưu ý rằng hàm capitalize của chúng ta sẽ không viết hoa các từ đi theo sau một số dấu câu nhất định, vì vậy nó không phải là hoàn hảo. Để có giải pháp mạnh mẽ hơn, bạn có thể xem xét thêm phù hợp mẫu hoặc thư viện bên ngoài.

Trong quá khứ, nhu cầu về các hàm viết hoa phát sinh từ mong muốn trình bày dữ liệu văn bản một cách đồng nhất, đặc biệt là trong giao diện người dùng. Tuy nhiên, cần phải hiểu rõ bối cảnh: các ngôn ngữ và văn hóa khác nhau có những quy tắc riêng về viết hoa không chỉ đơn giản là chữ cái đầu của một câu hoặc tên.

Xem thêm