之前:
EUTQQGOPED
Run Code Online (Sandbox Code Playgroud)
后:
EUT-QQG-OPED
Run Code Online (Sandbox Code Playgroud)
下面的示例是我想出的将" - "添加到10个字符的字符串作为可读性要求的一部分.格式化模式类似于美国社会安全号码的格式.
有没有更简单,更简洁的方式来完成额外的格式?
public static void main(String[] args){
String pin = "EUTQQGOPED";
StringBuilder formattedPIN = new StringBuilder(pin);
formattedPIN = formattedPIN.insert(3, '-').insert(7, '-');
//output is EUT-QQG-OPED
println formattedPIN
}
Run Code Online (Sandbox Code Playgroud)
我认为你所做的是最好的方法,但你可以通过简单地插入所有东西来使它变得更优雅,如下所示:
public static void main(String[] args) {
println new StringBuilder("EUTQQGOPED").insert(6, '-').insert(3, '-');
}
Run Code Online (Sandbox Code Playgroud)
由于StringBuilder提供了流畅的界面(允许方法链接),因此可以使用这种内嵌.
还要注意插入的转置,因为您使用它们的顺序意味着第一个插入会影响第二个插入的参数.通过命令它们最大的第一意味着它们基本上彼此独立.
并且总是...... "代码少= =好"(只要它仍然可读,在这种情况下它是恕我直言更可读)
可以使用正则表达式,它更清楚你正在做什么,但问题不是那么有效.
String formattedPin = pin.replaceAll("(.{3})(.{3})(.{4})", "$1-$2-$3")
System.out.println(formattedPin);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3084 次 |
| 最近记录: |