java 字符串后面数字进行递增

 /**
     * 将oldNumber字符串后面的数字加addNumber的数字
     * @param oldNumber 字符串
     * @param addNumber 递增
     * @return 递增后字符串
     */
    public static String stringNumberAdd(String oldNumber,int addNumber){
        if(StringUtils.isBlank(oldNumber)){
            throw new RuntimeException("该编号不符合规则,该数据为空:");
        }
        int lastCharIndex = -1;
        for(int index = 0; index < oldNumber.length(); index++){
            char c = oldNumber.charAt(index);
            if(c < '0' || c > '9'){
                lastCharIndex = index;
            }
        }
        if(lastCharIndex == oldNumber.length() - 1){
            throw new RuntimeException("该编号不符合规则,后面应该以数字结尾:"+oldNumber);
        }
        String numberStr = lastCharIndex == -1 ? oldNumber : oldNumber.substring(lastCharIndex+1);
        String charStr = oldNumber.substring(0,lastCharIndex+1);
        long longNumber = Long.parseLong(numberStr) + addNumber;
        String codeAfter = String.valueOf(longNumber);
        if(numberStr.length() > codeAfter.length()){
            int minLength = numberStr.length() - codeAfter.length();
            StringBuilder beforeChar = new StringBuilder();
            for(int lengthIndex = 0; lengthIndex < minLength; lengthIndex++){
                beforeChar.append("0");
            }
            codeAfter = beforeChar + codeAfter;
        }
        return charStr+codeAfter;
    }

测试方法

@Test
    public void testNumberStringAdd(){
        String code = "afdasf00001";
        String codeAfter = MyUtils.stringNumberAdd(code, 1);
        Assert.assertEquals("afdasf00002",codeAfter);


        String code2 = "3233afdasf0000132das09";
        String codeAfter2 = MyUtils.stringNumberAdd(code2, 1);
        Assert.assertEquals("3233afdasf0000132das10",codeAfter2);


        String code3 = "afdasf0000132das99";
        String codeAfter3 = MyUtils.stringNumberAdd(code3, 2);
        Assert.assertEquals("afdasf0000132das101",codeAfter3);


    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Java ,有多种方式可以将数字追加到字符串。以下是其的一些示例: 1. 使用字符串拼接符号 "+" ```java String str = "abc"; int num = 123; String result = str + num; System.out.println(result); // 输出 "abc123" ``` 2. 使用 StringBuilder 类 ```java String str = "abc"; int num = 123; StringBuilder sb = new StringBuilder(); sb.append(str); sb.append(num); String result = sb.toString(); System.out.println(result); // 输出 "abc123" ``` 3. 使用 String.format 方法 ```java String str = "abc"; int num = 123; String result = String.format("%s%d", str, num); System.out.println(result); // 输出 "abc123" ``` 以上三种方式都可以将数字追加到字符串。如果需要将多个数字追加到字符串,建议使用 StringBuilder 类,因为它比字符串拼接符号和 String.format 方法更高效。 ### 回答2: 在Java,我们可以使用字符串连接操作符"+"来追加数字字符串。具体步骤如下: 1. 首先,我们需要定义一个字符串变量来存储我们要进行追加数字字符串。 2. 然后,我们需要定义一个数字变量,用于表示我们要追加的数字。 3. 接下来,我们使用字符串连接操作符"+"将数字追加到字符串。例如:String result = str + num; 其str是我们要进行追加数字字符串,num是我们要追加的数字。 4. 最后,我们可以输出或者使用result变量来展示追加后的字符串。 例如,假设我们要将数字10追加到字符串"Hello": ```java String str = "Hello"; int num = 10; String result = str + num; System.out.println(result); // 输出:Hello10 ``` 需要注意的是,追加数字字符串时,会将数字直接转换为字符串类型,并且将其连接到原有的字符串后面。如果我们要追加多个数字,可以依次使用字符串连接操作符"+"将数字连接到字符串后面。 ### 回答3: 在Java,我们可以通过多种方式将数字追加到字符串。 1. 使用"+"操作符进行字符串连接 例如: ```java String str = "数字为:"; int num = 10; String result = str + num; System.out.println(result); ``` 输出结果为:数字为:10 2. 使用String类的concat()方法进行字符串连接 例如: ```java String str = "数字为:"; int num = 10; String result = str.concat(String.valueOf(num)); System.out.println(result); ``` 输出结果为:数字为:10 3. 使用StringBuilder类进行字符串追加 例如: ```java StringBuilder sb = new StringBuilder("数字为:"); int num = 10; sb.append(num); String result = sb.toString(); System.out.println(result); ``` 输出结果为:数字为:10 以上三种方法都可以实现字符串数字的追加,选择哪种方法取决于具体的需求和场景。使用"+"操作符和concat()方法简单直接,适用于小规模的字符串连接操作。而使用StringBuilder类则适用于大规模的字符串追加,因为它能够在原有的字符串基础上进行修改,避免了创建过多的String对象,提高了性能。 希望以上回答能够解决您的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值