2017-04-10 40 views
0

在talend Open Studio中,如果我有一個指向目錄的上下文變量C:/MyData如何從目錄字符串中減去它,例如: C:/MyData/Folder/Sub/讓我結束了/Folder/Sub/額外的處理如何在Talend中從字符串中減去或刪除上下文變量的內容

我試圖存放在變量PathC:/MyData/Folder/Sub/和上下文在TMAP字符串中使用Var.Path.replace(Var.ContextAsString, ""),但沒有在所有

影響輸出是否有使用Talend tMap處理表示目錄路徑的字符串的更好方法?

回答

1

無需聲明tMap變量。 假設包含完整路徑的字段是「row1.fullpath」,而上下文變量被稱爲root(包含「D:/ MyData」)。 在TMAP的右半部分,只寫:

row1.fullpath.replace(context.root, "")
+0

我試過前面,但不擁有的數據,以便需要他們宣告爲變量字段,但你的確讓我重新測試值,發現我從C:\ MyData \ Folder \ Sub目錄路徑中搜索C:/ MyData,所以它永遠不會匹配(斜線不同),但是我能夠更改上下文目錄值而不影響作業的運行,所以Var.Path.replace工作 – mobcdi

1

您可以參考下面的示例並將其移植到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); 
相關問題