合并两个字符串你好,
我有 2 列包含以下格式的字符串:
字符串 1 = 1.11;0;3;0;5
字符串 2 = 0;2.2;0;4;0
注 1:两个字符串都包含相同数量的“;” (但它们的长度不一定相同)。
注 2:两个字符串在交替位置有 0。
我想创建一个新列(string3),这是合并两列而没有 0 的结果。 对于上面的例子:1.11;2.2;3;4;5
所以string3应该有相同数量的“;”作为字符串 1 和字符串 2,并且必须包含“;”之间的所有术语按顺序,没有 0。
有没有办法只使用公式(没有 jsl 脚本)?
或者,有没有办法用 jsl 做到这一点?
请参阅附件。
谢谢,
约塔姆
数据表脚本编写回复:合并两个字符串这是一个有效的公式。我附加了一个带有新公式列的新数据表
w = 1;
newString = "";
While( Word( w, :string1, ";" ) != "",
If( newString != "",
newString = newString || ","
);
If( Word( w, :string1, ";" ) != "0",
newString = newString || Word( w, :string1, ";" ),
newString = newString || Word( w, :string2, ";" )
);
w++;
);
newString;
回复:合并两个字符串@DonMcCormack - 我认为这可能是一个很大的挑战问题。
- 如何捕获和处理字符串中的错误(非数字、不匹配的零、不相同的长度)
- 如何快速处理 1E6 分号
编辑:使用 JMP 16对于每个跨环形:
string1 = "1;0;2;0;0;8;0";
string2 = "0;1;0;3;5;0;13";
result = "";
For Each( {{w1, w2}, idx}, across( Words( string1, ";" ), Words( string2, ";" ) ),
result ||= (If( idx > 1, ",", "" ) || If( w1 == "0", w2, w1 ))
);
result;“1、1、2、3、5、8、13”
回复:合并两个字符串极好的。
谢谢!
回复:合并两个字符串谢谢!
不幸的是,我目前还没有 JMP16,但是这个解决方案看起来确实非常优雅!