如何分组显示长数字?
我有一个字符串,
string = '1234432198766789'
我希望它看起来像这样:
"1234 4321 9876 6789"
最好的方法是什么?我能够使用 Rails 的字符串扩展。
我不想修改原始字符串,因此无法使用 insert
方法。
I have a string
string = '1234432198766789'
I want it to look like this:
"1234 4321 9876 6789"
What is the best way to do it? I am able to use Rails' String extensions.
I don't want to modify the original string, so insert
method couldn't be used.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为什么要双重
反转
?这样,当字符串的长度不是四的倍数时,奇数大小的组将位于左侧:如果您知道字符串始终是四的倍数,或者如果您不介意奇数大小的组是右侧,然后省略对
reverse
的两个调用。Why the double
reverse
? So that when the string's length is not a multiple of four, the odd-sized group will be on the left:If you know your string will always be a multiple of four, or if you don't mind the odd-sized group being on the right, then leave out the two calls to
reverse
.长版:
这应该是某种电话号码吗? Rails 有一个
number_to_phone
帮助器你可以使用。Long version:
Is this supposed to be a phone number of some sort? Rails has a
number_to_phone
helper that you could use.另一个解决方案:
PS Ryan 的解决方案的好处是,如果您必须执行 i18n 操作,则可以将
string.split('')
更改为string.chars.to_a
。这可能是一场噩梦......Another solution:
P.S. Ryan's solution has the benefit of possibly change
string.split('')
withstring.chars.to_a
if you ever have to do i18n stuff. It can be a nightmare...