如何在逗号分隔的字符串集中填充所有字符串[关闭]

Posted

技术标签:

【中文标题】如何在逗号分隔的字符串集中填充所有字符串[关闭]【英文标题】:How to pad all strings in a comma separated set of strings [closed] 【发布时间】:2020-04-25 03:38:55 【问题描述】:

有没有办法一次性将每个单独的字符串填充到逗号分隔的字符串中?

我可以拆分逗号分隔的字符串,遍历每个字符串并填充它(用 0,表示 3 个字符)并再次加入数组元素,但不确定是否可以一次性完成。

例如,如果我有:

var someString = "01,002,7"; 

我怎样才能得到“001,002,007”?

我可以做这个客户端(jQuery)或服务器端(C#)

【问题讨论】:

逗号分割、pad、join...问题出在哪里? 字符串操作是 javascript 问题,而不是 jQuery 问题。 为什么所有的反对票? 哇! 5票反对!到处都是阴天? @Selvin 这是我的第一个想法,我只是认为可能有一种更优雅的方式来一次完成 【参考方案1】:

服务器端方法:

拆分/合并/填充

string someString = "01,002,7";
string result = string.Join(",", someString.Split(',').Select(x => x.PadLeft(3, '0')));

Andreas'RegEx接近服务器端

string someString = "01,002,7";
string result = System.Text.RegularExpressions.Regex.Replace(someString, @"\b\d1,2\b", m => m.Value.PadLeft(3, '0'));

【讨论】:

【参考方案2】:

要在 Javascript 中实现这一点,您可以通过 , 拆分字符串,并使用 map() 它构建另一个填充前导零的数组,如下所示:

var someString = "01,002,7".split(',').map(v => v.padStart(3, '0')).join(',');
console.log(someString);

请注意,由于使用了箭头函数和padStart(),这在 IE 中不起作用。如果您想要旧版浏览器安全版本,请使用:

var someString = "01,002,7".split(',').map(function(v) 
  return ('000' + v).slice(-3)
).join(',');
console.log(someString);

【讨论】:

【参考方案3】:

我不太确定您为什么不想使用“问题”中提到的明显解决方案,但您也可以使用 String.prototype.replace()

var input = "01,002,7";
var output = input.replace(/\b\d1,2\b/g, m => m.padStart(3, "0"));

console.log(output);

【讨论】:

【参考方案4】:

试试这个

var s = "01,2,3";
var t = s.Split(',').Select(x => x.PadLeft(3, '0')).Aggregate((z,c)=>z+","+c);
Console.WriteLine(t);
Console.ReadKey();

【讨论】:

谢谢大家,这么多优秀的回应。我将尝试服务器端和客户端的方法并进行更新,我偏爱客户端操作。现在,如果有人能告诉我是什么导致了如此多的反对票,那么下次我不会犯同样的错误,那将是很棒的(问题格式,问题的性质......)

以上是关于如何在逗号分隔的字符串集中填充所有字符串[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将逗号分隔的字符串拆分为字符串列表?

用逗号分隔的文本 JQuery 填充 DropDownList

sql server里如何将一组用逗号分隔的字符串分解并插入到另一张表中,比如:11873,27827, 也可能是好多

R:如何计算列中用逗号分隔的所有字符值?

C ++:处理子字符串本身带有逗号的逗号分隔字符串的最简单方法? [关闭]

带有多个逗号分隔参数的C# Web API GET [关闭]。