2010-03-11 12 views
14

Czy Lua udostępnia funkcję tworzenia pierwszego znaku wielkimi literami (np. Ucfirst w php), a jeśli tak, jak z niego korzystać?Duża litera pierwszego znaku Lua

Chcę, aby keywords[1] była pierwszą wielką literą. Czytałem, że robi to string.upper, ale zrobiło to całe wielkie słowo.

Odpowiedz

27

Istnieje kilka przydatnych receptur łańcuchowych here, w tym ten. Aby zmienić pierwszy znak w ciągu znaków na wielkie litery, można użyć:

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

Dzięki! Działa świetnie – Tomek

+0

@GrasDouble Proszę nie edytować kodu innych osób, chyba że jest to po prostu zmiana formatowania. Twoja edycja (usunięcie nawiasów) zmienia zachowanie funkcji i czyni ją niepoprawną (powoduje, że funkcja zwraca dwie wartości zamiast jednej). – interjay

+0

Niestety, zostałem złapany przez [to gotcha] (http://www.luafaq.org/gotchas.html#T8.1) (w rzeczy samej niebezpieczne). Przypadek 'gsub' jest nawet udokumentowany w szczególności na końcu sekcji. –

7

Działa to również: s:sub(1,1):upper()..s:sub(2)

+0

Wersja interjay nie działa w LÖVE (love2d), to z drugiej strony działa świetnie. – modiX

Powiązane problemy