Java - 插入" - "在字符串中的连续数字之间

时间:2017-01-24 19:21:06

标签: java

我试图通过插入"来创建新字符串 - "在字符串中的连续数字之间,例如,如果输入字符串是" bea345ful"输出字符串应该像" bea3-4-5ful"但如果输入字符串是" be3u4t5ful"我不需要插入" - "因为没有数字是连续的。

我能够使用以下代码,但是当字符串末尾有连续的数字时,它会失败,例如" be3u4t5f67"在这种情况下,它会抛出StringIndexOutOfBoundsException,我理解这种情况正在发生,因为我的代码没有处理这个条件。有任何建议如何修复它?

    public static String insertDash(String str){
    String result = "";
    for (int i = 0; i < str.length(); i ++) {
        if (Character.isDigit(str.charAt(i)) && Character.isDigit(str.charAt(i + 1))) {
                result+=str.charAt(i) + "-";
            } else {
                result+=str.charAt(i);
            }
    } return result;

1 个答案:

答案 0 :(得分:3)

循环的停止条件应为i < str.length() - 1

如果没有更改,在最后一次迭代中,i等于str.length() - 1,因此访问索引str.length() - 1 + 1(带str.charAt(i + 1))的元素会触发异常。< / p>

在for循环之后,只需将最后一个字符附加到result即可。