String.format (Lua): различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: «== Описание == '''string.format''' - возвращает отформатированную строку. == Синтаксис == Привязка к...»)
 
 
Строка 4: Строка 4:
 
== Синтаксис ==
 
== Синтаксис ==
 
Привязка к окну: нет.
 
Привязка к окну: нет.
<br>Работа со свернутым окном: да.
+
<br>Работа со свернутым окном: да.
&lt;br>Параметры заключаются в скобки и разделяются запятыми.
+
<br>Параметры заключаются в скобки и разделяются запятыми.
  string.format (&lt;nowiki>&lt;s>, &lt;arg1>&lt;/nowiki> [, arg2, ...])
+
  string.format (<nowiki><s>, <arg1></nowiki> [, arg2, ...])
 
Где:
 
Где:
&lt;br>'''s''' - строка для форматирования.
+
<br>'''s''' - строка для форматирования.
&lt;br>'''arg1, arg2''' - аргументы для форматирования.
+
<br>'''arg1, arg2''' - аргументы для форматирования.
&lt;br>Или:
+
<br>Или:
  string.format ("%q", &lt;nowiki>&lt;s>&lt;/nowiki>)
+
  string.format ("%q", <nowiki><s></nowiki>)
 
Опция q позволяет вернуть строку в формате, безопасно воспринимаемом Lua интерпретатором: строка выводится в двойных кавычках, а все двойные кавычки, перевод строки, символы с кодом 0 и обратный слеш внутри строки перекодируются в escape-последовательность.
 
Опция q позволяет вернуть строку в формате, безопасно воспринимаемом Lua интерпретатором: строка выводится в двойных кавычках, а все двойные кавычки, перевод строки, символы с кодом 0 и обратный слеш внутри строки перекодируются в escape-последовательность.
&lt;br>&lt;br>Спецификаторы форматирования:
+
<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 = &lt;nowiki>[[C:\Users\abc\Desktop\file123.txt]]&lt;/nowiki>
+
  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)]]
&lt;br>[[Tostring (Lua)]]
+
<br>[[Tostring (Lua)]]
&lt;br>[[String.rep (Lua)]]
+
<br>[[String.rep (Lua)]]
&lt;br>[[String.gsub (Lua)]]
+
<br>[[String.gsub (Lua)]]
&lt;br>[[String.reverse (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)