删除动态字符串的最后一个字符。

3

我在动态生成的字符串中删除最后一个字符时遇到了问题。最后一个字符是 ',',我可以将其删除,但问题在于当我打印出列表时,逗号仍然存在。为了创建这个字符串,我从CSV文件读取信息并将其放入数组中。然后,我将数组中的所有内容转换为最终格式。

for ($i = 0; $i -lt $CSVArray.Length; $i++) {
  $longString = $longString + "'" + $CSVArray[$i] + "',"
}

然后我找到字符串的长度。

$length = $longString.Length

最后,我删除了最后一个字符,

$longString = $longString.Substring($length - 1).Replace(",", "")

当我输出$longString.Substring($length - 1)时,我只得到逗号,但当我在进行替换后输出$longString时,它仍然以逗号结尾。
如何从longString中删除最后一个字符?
3个回答

4

只需使用-join命令即可合并数组:

$longString = "'" + ($CSVArray -join "','") + "'"

我不熟悉-join,所以我可能使用不正确,但是当我在运行此行后立即编写$longString的Write-Host时,逗号仍然在末尾。 - Grady D
1
@aDroidman,如果您用我的答案中的代码替换了您的循环,那显然是不可能的。请提供证据。 - Ansgar Wiechers
我现在明白了。很抱歉,它确实有效。问题出在我实施上述代码的那一天。 - Grady D

1
正如@Ansgar Wiechers所提到的,对于您的情况使用-join更好。对于其他字符串/情况,这将起作用:
$longString = $longString.Substring(0,$longString.Length -1);

0

删除最后一个字符:

$LongString = $LongString ".$"

删除最后2个字符:

$LongString = $LongString "..$"

就这样!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接