如何从字符串中删除末尾逗号?

4

我在PowerShell中有一个字符串,结果以逗号分隔,这很好,但我不希望最后一个逗号。

我知道需要使用Trim函数,但似乎无法让它起作用。也许我一直在错误的地方尝试?

我需要返回三个“网站代码”,每个都用逗号分隔,而且最后没有逗号。我真的需要知道在哪里添加Trim。

$UKPRN = "10007405"
$str_sites = "A4EYORK,AVLEEDS,BANBURY";

$sites = "";


foreach ($site in $str_sites.Split(","))
{
$sites = $sites+"'"+$site+"',"

}
Write-Output $sites;

请勿张贴代码截图,请在问题中张贴实际的代码。 - Paxz
不应该发布代码截图。我们无法复制并尝试运行它。 - Palle Due
此外,请重新表述输入和预期输出的样式。 - Paxz
我现在使用了一个代码示例。 - user8591026
你在这里想要实现什么?为什么不能使用数组和每个字符串来完成它? - Pete Philters
4个回答

15

你可以直接使用TrimEnd()函数。

$str = "string with , at the end,"
$str.TrimEnd(",")

4

你的字符串构建方法是导致问题的根本原因。你想要正确地引用字符串的所有元素吗?请逐个引用数组元素,然后使用-join,这样就不会有任何需要处理的残留物了。

$sites = "A4EYORK,AVLEEDS,BANBURY"
($sites.split(",") | ForEach-Object{"'$_'"}) -join ","

1
$str_sites = "A4EYORK,AVLEEDS,BANBURY"

$sites = $str_sites.Split(",") | % { "'{0}'" -f $_ }

Write-Output ($sites -join ',')

$sites 是一个数组,使用 -join 运算符以逗号分隔。 有关 -join 的更多信息,请参阅 Microsoft Docs


1
我个人会使用 String.Split()String.Join(),但是由于你的所有术语都由单词字符组成,因此你也可以使用简单的正则表达式替换模式来完成这个任务:
$str_sites = $str_sites -replace '\b(\w+)\b',"'`$1'"

我曾考虑过加入那个,但想保持简单。 - Matt

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