java - 如何添加 - 每个字符串数字的第三位数字[重复]

Posted

技术标签:

【中文标题】java - 如何添加 - 每个字符串数字的第三位数字[重复]【英文标题】:java - how to add - every after 3rd digit of String number [duplicate] 【发布时间】:2018-09-21 08:14:43 【问题描述】:

我有联系电话,我从字符串类型的参数中获取。

 String pharmacyPhone = "123456789";

我想在这里添加 - 在每 3 位之后和第 4 位之前

所以输出会变成pharmacyPhone = 123-456-789.

那么如何实现呢?

【问题讨论】:

到目前为止你尝试了什么? 请包含一些代码向我们展示您已经取得的成果。 即使是快速的谷歌搜索也会告诉你 看看StringBuilder.insert(offset, char) 【参考方案1】:

一种方法使用正则表达式替换:

String pharmacyPhone = "123456789";
pharmacyPhone = pharmacyPhone.replaceAll("(.3)(?=.)", "$1-");
System.out.print(pharmacyPhone);

123-456-789

(.3)(?=.) 模式通过匹配一次捕获三个数字来工作,前提是后面至少还有一个数字。然后它替换为捕获的三个数字,后跟一个破折号。正向前瞻 (?=.) 确保我们不会在字符串末尾添加破折号。

【讨论】:

不错的一个。 Tim 有 regex tut 的参考资料吗? www.rexegg.com 是一个非常好的网站。除此之外,实践是一个人通常如何擅长任何事情。正则表达式也不例外。 确实。感谢参考。 非常感谢,它按我的方式工作 当然..谢谢@TimBiegeleisen

以上是关于java - 如何添加 - 每个字符串数字的第三位数字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

用java格式化一个字符串每隔三位添加,号

如何用java生成有规律的字符串?

用java实现字母与数字混合的唯一序号,且要递增

怎样在jsp页面提取list集合的第一位第二位第三位等等的数据

二进制和位运算

Java如何将每个单词的第一个字符转为大写