Ent*_*024 0 java string android concatenation android-edittext
在Android中如果我有一个编辑文本并且用户输入了123456789012,我怎么能让程序每隔4个字符插入一个破折号.即:1234-5678-9012?
我想你需要说出以下几点: -
a=Characters 1~4, b=Characters 5~8, c=Characters 9-12,结果= a +" - "+ + b +" - "+ c.但我不确定Android的外观如何.
非常感谢任何帮助.
String s = "123456789012";
String s1 = s.substring(0, 4);
String s2 = s.substring(4, 8);
String s3 = s.substring(8, 12);
String dashedString = s1 + "-" + s2 + "-" + s3;
//String.format is extremely slow. Just concatenate them, as above.
Run Code Online (Sandbox Code Playgroud)
或者使用 StringBuilder 的另一种替代方法,而不是将字符串拆分为多个部分然后加入它们:
String original = "123456789012";
int interval = 4;
char separator = '-';
StringBuilder sb = new StringBuilder(original);
for(int i = 0; i < original.length() / interval; i++) {
sb.insert(((i + 1) * interval) + i, separator);
}
String withDashes = sb.toString();
Run Code Online (Sandbox Code Playgroud)