【发布时间】:2016-10-05 11:47:56
【问题描述】:
我只是想知道是否可以使用 datamapper/dataweave 发出格式字符串以在数字上具有固定长度并填充零来完成长度?
类似
String.format("%056", variable_number);
我在 datamapper 上试过这个,但它不起作用。我错过了什么?
【问题讨论】:
标签: mule padding datamapper dataweave
我只是想知道是否可以使用 datamapper/dataweave 发出格式字符串以在数字上具有固定长度并填充零来完成长度?
类似
String.format("%056", variable_number);
我在 datamapper 上试过这个,但它不起作用。我错过了什么?
【问题讨论】:
标签: mule padding datamapper dataweave
要满足此要求,请致电Global MEL Functions from DataWeave。
全局 MEL 函数:
<configuration doc:name="Configuration">
<expression-language>
<global-functions>
def zeroPad(variable_number) {
String.format("%05d", variable_number);
}
</global-functions>
</expression-language>
</configuration>
DataWeave 脚本:
%dw 1.0
%output application/json
---
{
result: zeroPad(123)
}
【讨论】:
D,
在 dataweave 中,您可以简单地将数字格式化为 -
data: 5 as :string {format:"00000"}
这将输出00005。如果原始长度小于 0 的个数,数字将用 0 填充。
例如。 123 -> 00123.
希望有帮助!
【讨论】:
我有类似的要求并通过首先转换为字符串作为使用带零的格式来完成。
上面给出的答案有效 数据:5 as :string {format:"00000"}
如果由于某种原因您无法使用 dataweave 操作符,您可以通过使用 java 库编写全局函数并从 dataweave 调用它们来实现。
【讨论】:
在 Dataweave 中简单地定义 like
Field: "12" as :number {format: "0000"}
输出将类似于0012
【讨论】: