在我的应用程序中,用户将从 10 个选项中选择多个选项。所选选项的数量可能从 1 到 10 不等。现在我尝试通过在数字之间插入逗号来分隔这些所选选项。 我得到这样的数字:
123456
346
12
5
现在我尝试像这样转换它们:
1,2,3,4,5
3,4,6
1,2
5(no comma)
为此,我正在尝试 StringBuffer,但我得到了错误的输出:
For 12 output is 1,2
For 5 output is 5
For 123 output is 1,,23
For 123456 output is 1,,,,,23456
你能帮我找出代码中的错误吗?
String str = jTextField1.getText();
StringBuffer sb = new StringBuffer(str);
int x = 0;
for (int i = 0; i < str.length() - 1; i++) {
sb.insert(++x, ",");
}
System.out.println(sb);
最佳答案
您可以使用正则表达式通过非常简单且快速的代码来实现它:
String num = "123456789";
String regex = "(\\d)(?=(\\d{1})+$)";
String commaSaperatedNums = num.replaceAll(regex, "$1,");
System.out.println( commaSaperatedNums);
关于java - Java中如何在字符串中插入字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791167/