我有一个超级简单的公式。问题是有时数据没有第二个值,或者有时值为空。
JSONObject parse = JSON.parseObject("");
for (Map.Entry<String, Object> entry : parse.entrySet()) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
我在想是否可以想出一些逻辑来判断字符串是否有多个值可以解决我的问题,但是没有找到我想要的东西:
Split ({PO_RECEIVE.VENDOR_LOT_ID}," ")[2]
ID
111 222
123
123 222
更好的示例数据:
If {PO_RECEIVE.VENDOR_LOT_ID} = SingleOrBlankString then
{PO_RECEIVE.VENDOR_LOT_ID} else
Split ({PO_RECEIVE.VENDOR_LOT_ID}," ")[2]
答案 0 :(得分:1)
如果字符串最多可包含两个值,以space
分隔,则可以使用space
函数检查字符串是否包含InStr
:
If InStr({PO_RECEIVE.VENDOR_LOT_ID}, " ") > 0 Then
{PO_RECEIVE.VENDOR_LOT_ID}
Else
Split ({PO_RECEIVE.VENDOR_LOT_ID}," ")[2]
如果部件之间可以有多个空格,您可以使用以下公式来获取值:
左侧部分:
此函数返回字符串的左侧部分,直到第一个空格。
If InStr({PO_RECEIVE.VENDOR_LOT_ID}, " ") > 0 Then
Left({PO_RECEIVE.VENDOR_LOT_ID}, InStr({PO_RECEIVE.VENDOR_LOT_ID}, " "))
右边:
此函数返回最后一个空格后的字符串的右侧部分。
InStrRev
- 函数返回最后一个空格的位置,因为它向后搜索字符串。Len
- 函数返回字符串的长度。
If InStr({PO_RECEIVE.VENDOR_LOT_ID}, " ") > 0 Then
Right({PO_RECEIVE.VENDOR_LOT_ID}, Len({PO_RECEIVE.VENDOR_LOT_ID}) - InStrRev(testString, " "))