用零填充十六进制字符串到6个字符的长度

时间:2018-09-26 07:56:29

标签: string lua formatting padding

我有这个:

<ListView.GroupHeaderTemplate>
  <DataTemplate>
    <ViewCell Height="50">
      <StackLayout VerticalOptions="FillAndExpand"
               Padding="5"
               BackgroundColor="#3498DB">
        <Label Text="{Binding Key}" TextColor="Black" VerticalOptions="Center"/>
      </StackLayout>
    </ViewCell>
  </DataTemplate>
</ListView.GroupHeaderTemplate>

,需要function dec2hex(IN) local OUT OUT = string.format("%x",IN) return OUT end 将零填充为字符串长度6。

我不能使用INString.Utils。它位于名为Watchmaker的应用程序中,该应用程序使用Lua的精简版。

2 个答案:

答案 0 :(得分:1)

Lua中的字符串格式在大多数情况下都像在C中一样工作。因此,要用零填充数字,只需使用%0n,其中n是位数。例如

print(string.format("%06x", 16^4-1))

将打印00ffff

有关详细信息,请参见“在Lua中编程”的第20章The String Librarystring.format的引用以及函数printf family的C参考。

答案 1 :(得分:0)

如果将格式字符串存储在本地,则可以在格式字符串上调用format方法,并且@Henri的示例结果为("%06x"):format(0xffff)

print(("%06x"):format(0xffff)) -- Prints `00ffff`

您可以在hex format中写数字。与C相同。