繁体   English   中英

字符串中整数的串联

[英]Concatenation of integers in string

我有一个字符串如下

String str = "AUTHOR01BOOK"

在此字符串中,我要添加此数字00001 我怎样才能做到这一点?

我尝试将其串联,但是得到的输出是AUTHOR01BOOK1 我的代码没有附加零。 我怎样才能做到这一点?

您可以使用打印格式。

String str="AUTHOR01BOOK";
int num = 000001;

System.out.printf("%s%06d", str, num);

或使用String.format函数将其存储在变量中:

String myConcat = String.format("%s%05d", str, num);

编辑:要回答Raju的跟进有关循环这样做,创建一个将返回格式化字符串的方法的问题:

static String myConcatWithLoop(String str, int iteration){

    return String.format("%s%05d", str, iteration);
}

然后在循环中调用此命令:

for (int i = 1; i <= 100; i++) {
        System.out.println(myConcatWithLoop(str, i));

}

如果将'000001'存储在int数据类型中,它将被视为八进制。 那是

int a = 000001; System.out.println(a); 输出:1将其视为OCTAL编号

因此,您不能在int中存储以0开头的数字,因为编译器将强制转换它。 因此,您只需要使用Strings :)

请尝试以下代码。 它不仅显示,而且更改字符串。 StringUtils帮助我们填充左零。 leftPad方法中的数字4表示零的数目。 它不是动态解决方案,但可以满足您的需求。

import org.apache.commons.lang.StringUtils;
public class Interge {

    public static void main(String[] args) {
        int i =00001;
        String s= i+"";
        String result = StringUtils.leftPad(s, 4, "0");
        String fnlReslt = "AUTHOR01BOOK"+result;
        System.out.println("The String : " + fnlReslt);

    }
}

另一种方法是使用StringBuilder

public class JavaApplication {

    public static void main(String[] args) {
        JavaApplication ex = new JavaApplication();
        String str = "AUTHOR01BOOK";
        System.out.println(ex.paddingZero(str));
    }

    public String paddingZero(String str) {
        StringBuilder sb = new StringBuilder();
        sb.append(str);
        sb.append("00001");
        return sb.toString();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM