如何从 Talend 中的字符串中减去或删除上下文变量的内容
How to subtract or remove contents of context variable from string in Talend
在 talend Open Studio 中,如果我有一个指向目录的上下文变量 C:/MyData
我如何从目录字符串中减去它,例如C:/MyData/Folder/Sub/
所以我最终得到 /Folder/Sub/
进行额外处理
我尝试将 C:/MyData/Folder/Sub/
存储在变量 Path
中,并将上下文作为 tMap 中的字符串使用 Var.Path.replace(Var.ContextAsString, "")
但这根本不影响输出
是否有更好的方法来使用 Talend tMap 来操作代表目录路径的字符串?
您可以参考下面的例子移植到tMap表达式中。
String s1 = "C:/MyData";
String s2 = "C:/MyData/Folder/Sub/";
String s3 = (s2.indexOf(s1) >= 0) ? s2.substring(s2.indexOf(s1) + s1.length()): s2;
System.out.println(s3);
无需声明 tMap 变量。
假设包含完整路径的字段是 "row1.fullpath",上下文变量称为 root(包含 "D:/MyData")。
在 tMap 的右侧,只写:
row1.fullpath.replace(context.root, "")
在 talend Open Studio 中,如果我有一个指向目录的上下文变量 C:/MyData
我如何从目录字符串中减去它,例如C:/MyData/Folder/Sub/
所以我最终得到 /Folder/Sub/
进行额外处理
我尝试将 C:/MyData/Folder/Sub/
存储在变量 Path
中,并将上下文作为 tMap 中的字符串使用 Var.Path.replace(Var.ContextAsString, "")
但这根本不影响输出
是否有更好的方法来使用 Talend tMap 来操作代表目录路径的字符串?
您可以参考下面的例子移植到tMap表达式中。
String s1 = "C:/MyData";
String s2 = "C:/MyData/Folder/Sub/";
String s3 = (s2.indexOf(s1) >= 0) ? s2.substring(s2.indexOf(s1) + s1.length()): s2;
System.out.println(s3);
无需声明 tMap 变量。 假设包含完整路径的字段是 "row1.fullpath",上下文变量称为 root(包含 "D:/MyData")。 在 tMap 的右侧,只写:
row1.fullpath.replace(context.root, "")