如何从 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, "")