String.format (Lua): различия между версиями
Перейти к навигации
Перейти к поиску
Tatikoma (обсуждение | вклад) (Новая страница: «== Описание == '''string.format''' - возвращает отформатированную строку. == Синтаксис == Привязка к...») |
Tatikoma (обсуждение | вклад) |
||
| Строка 4: | Строка 4: | ||
== Синтаксис == | == Синтаксис == | ||
Привязка к окну: нет. | Привязка к окну: нет. | ||
| − | + | <br>Работа со свернутым окном: да. | |
| − | + | <br>Параметры заключаются в скобки и разделяются запятыми. | |
| − | string.format ( | + | string.format (<nowiki><s>, <arg1></nowiki> [, arg2, ...]) |
Где: | Где: | ||
| − | + | <br>'''s''' - строка для форматирования. | |
| − | + | <br>'''arg1, arg2''' - аргументы для форматирования. | |
| − | + | <br>Или: | |
| − | string.format ("%q", | + | string.format ("%q", <nowiki><s></nowiki>) |
Опция q позволяет вернуть строку в формате, безопасно воспринимаемом Lua интерпретатором: строка выводится в двойных кавычках, а все двойные кавычки, перевод строки, символы с кодом 0 и обратный слеш внутри строки перекодируются в escape-последовательность. | Опция q позволяет вернуть строку в формате, безопасно воспринимаемом Lua интерпретатором: строка выводится в двойных кавычках, а все двойные кавычки, перевод строки, символы с кодом 0 и обратный слеш внутри строки перекодируются в escape-последовательность. | ||
| − | + | <br><br>Спецификаторы форматирования: | |
%a -- Шестнадцатеричное в виде 0xh.hhhhp+d (только С99) | %a -- Шестнадцатеричное в виде 0xh.hhhhp+d (только С99) | ||
%A -- Шестнадцатеричное в виде 0Xh.hhhhP+d (только С99) | %A -- Шестнадцатеричное в виде 0Xh.hhhhP+d (только С99) | ||
| Строка 78: | Строка 78: | ||
--lua | --lua | ||
| − | local a = | + | local a = <nowiki>[[C:\Users\abc\Desktop\file123.txt]]</nowiki> |
a = string.format("%q", a) -- вернёт строку в двойных кавычках, \ будут заменены на \\ | a = string.format("%q", a) -- вернёт строку в двойных кавычках, \ будут заменены на \\ | ||
log (a) | log (a) | ||
| Строка 85: | Строка 85: | ||
[[Tonumber (Lua)]] | [[Tonumber (Lua)]] | ||
| − | + | <br>[[Tostring (Lua)]] | |
| − | + | <br>[[String.rep (Lua)]] | |
| − | + | <br>[[String.gsub (Lua)]] | |
| − | + | <br>[[String.reverse (Lua)]] | |
Текущая версия на 11:18, 28 августа 2019
Содержание
Описание
string.format - возвращает отформатированную строку.
Синтаксис
Привязка к окну: нет.
Работа со свернутым окном: да.
Параметры заключаются в скобки и разделяются запятыми.
string.format (<s>, <arg1> [, arg2, ...])
Где:
s - строка для форматирования.
arg1, arg2 - аргументы для форматирования.
Или:
string.format ("%q", <s>)
Опция q позволяет вернуть строку в формате, безопасно воспринимаемом Lua интерпретатором: строка выводится в двойных кавычках, а все двойные кавычки, перевод строки, символы с кодом 0 и обратный слеш внутри строки перекодируются в escape-последовательность.
Спецификаторы форматирования:
%a -- Шестнадцатеричное в виде 0xh.hhhhp+d (только С99)
%A -- Шестнадцатеричное в виде 0Xh.hhhhP+d (только С99)
%c -- Символ по коду
%d -- Десятичное целое со знаком
%i -- Десятичное целое со знаком
%e -- Экспоненциальное представление ('е' на нижнем регистре)
%E -- Экспоненциальное представление ('Е' на верхнем регистре)
%f -- Десятичное с плавающей точкой
%g -- В зависимости от того, какой вывод будет короче, используется %е или %f
%G -- В зависимости от того, какой вывод будет короче, используется %Е или %F
%o -- Восьмеричное без знака
%s -- Строка символов
%u -- Десятичное целое без знака
%x -- Шестнадцатеричное без знака (буквы на нижнем регистре)
%X -- Шестнадцатеричное без знака (буквы на верхнем регистре)
%p -- Выводит указатель
%n -- Аргумент, соответствующий этому спецификатору, должен быть указателем на целочисленную переменную.
Спецификатор позволяет сохранить в этой переменной количество записанных символов (записанных до того места, в котором находится код %n)
%% -- Выводит знак %
Примеры
--lua
log(string.format("yandex%s", ".ru")) -- подставить .ru вместо %s
log(string.format("yandex%s", ".com")) -- подставить .com вместо %s
--lua local str1 = "yandex" log(string.format(str1 .. "%s", ".ru"))
--lua
log(string.format("%s%s", "yandex", ".ru")) -- подставить yandex вместо первого %s и .ru вместо второго %s
--lua
log(string.format("mail%syandex.ru", "@"))
--lua
local a = 126
local b = string.format("%05d", a) -- если число состоит меньше чем из 5 цифр, то оно будет дополнено нулями до пяти цифр
log(b)
--lua
local d, m, y = 6, 10, 2017
log(string.format("%02d/%02d/%04d", d, m, y)) -- подставить дату, если день или месяц состоят из 1 цифры, то будет добавлен 0. Т. е. вместо 6 будет 06
--lua
-- Перевести десятичный цвет в шестнадцатеричный
log(string.format("%x", 16690957))
log(string.format("%X", 16690957))
--lua
-- округлить число до нужной точности
local a = 12.47652853
log(string.format("%.3f", a)) -- до 3 знаков после точки
log(string.format("%.5f", a)) -- до 5 знаков после точки
--lua
log ("clear") log ("mode compact")
local arr = {"Vasya", "Misha", "Kolya"}
for i = 1, #arr do
log (string.format("%s@yandex.ru", arr[i])) -- подставить вместо %s имя из массива
end
--lua
local a = [[C:\Users\abc\Desktop\file123.txt]]
a = string.format("%q", a) -- вернёт строку в двойных кавычках, \ будут заменены на \\
log (a)
Смотрите также
Tonumber (Lua)
Tostring (Lua)
String.rep (Lua)
String.gsub (Lua)
String.reverse (Lua)