【发布时间】:2014-01-18 12:42:19
【问题描述】:
我有一个String 实例,其中包含1548258598784165 等数字。
我想要一个灵活的实用程序来将此字符串格式化为另一个字符串。
我的目标是以下结果(示例):
- 规则 1:中间三颗星-右四位-左四位。结果将是:
1548***4165 - 规则 2:一个破折号而不是除三个第一位数字和两个最后一位数字之外的任何字符。结果将是:
154-----------65 - 规则 3:用空格分隔任意四位数字。结果将是:
1548 2585 9878 4165
以上规则是我格式化原始字符串的规则示例。
我的问题是:我的目标是否有好处?我不想被substring 和类似的方式操纵。
【问题讨论】:
-
你考虑过创建一个类来为你做这件事吗?您已经定义了规则,创建一个围绕字符串输出这些不同情况的类应该不会太难。
-
您可以将字符串转换为 char 数组,然后用它们的索引 (
char[] charArray = str.toCharArray();) 替换字符,但不知道为什么您不想只使用substring或“类似方式”。你认为这个“福利实用程序”会是什么样子? -
@ZachL 因为使用
substring来解决这个问题会产生非常不可读的代码,几个if语句,几个NullPointerExceptionmaby throws 和... -
@MJM 我不认为会有一个超级相关的库来为你做这些事情。接受下面答案中的建议,并将这种复杂性包含在它自己的类中。通过一些努力,我相信您可以将 Elliotts 的答案重构为可读性强且优雅。
标签: java apache-commons