Java:如何向字母数字字符串中的数字添加整数并返回输出

时间:2019-01-23 23:44:18

标签: java

尝试将字母数字字符串中的数字增加一个数字n,并返回结果,在字符串索引中的相同位置返回数字增加的结果。如果数字为9,则输出应换为0、1、2、3,....,依此类推,直到9 `即字符串输入=“ abc123de45”            n = 2           打印=“ abc345de67”

.coach {
  display:none;
}

.-enable {
  display:block;
}

3 个答案:

答案 0 :(得分:0)

如果if语句为true,则可以尝试使用StringBuilder更新字符串。

public static StringBuilder numericInt(String a,int b)
{
    StringBuilder c = new StringBuilder(a);

    for (int i = 0; i < c.length(); i++) {

        char tempInp = c.charAt(i);

        if (Character.isDigit(tempInp)) {
            int temp=(c.charAt(i)-'0')+b;
            c.setCharAt(i,(char)(temp+'0'));

        }
        }

    return c;
    }  

}

答案 1 :(得分:0)

您可以结合使用StringBuilder并将char转换为相关的int

String inputString = "abc123de45";
int n = 2;

StringBuilder buf = new StringBuilder ();

for (int i = 0; i < inputString.length(); i++) {

    char tempInp = inputString.charAt(i);

    if (Character.isDigit(tempInp)) {
        buf.append ((tempInp -'0') + n);
    }
    else {
        buf.append(tempInp);
    }   
}

System.out.println(buf.toString());

输出

abc345de67

答案 2 :(得分:-1)

使用Character.getNumericValue(tempInp)代替sumDigit = tempInp + n,因为后者只会将字符作为字符串连接在一起,而不添加数字值。

String inputString = "abc123de45" ;
int n = 2;
String newString = "";
int sumDigit = 0;

for (int i = 0; i < inputString.length(); i++) {

    char tempInp = inputString.charAt(i);

    if (Character.isDigit(tempInp)) {
        sumDigit = Character.getNumericValue(tempInp) + n;
        newString += sumDigit;
    }

    else{
        newString += tempInp;
    }
}

现在newString包含:

System.out.println(newString);
// abc345de67