Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串中整数的串联_Java - Fatal编程技术网

Java 字符串中整数的串联

Java 字符串中整数的串联,java,Java,我有一个字符串如下 String str = "AUTHOR01BOOK" 在这个字符串中,我想添加这个数字00001。我该怎么做 我尝试连接它,但得到的输出是AUTHOR01BOOK1。我的代码没有附加零。我该怎么做 您可以使用打印格式 String str="AUTHOR01BOOK"; int num = 000001; System.out.printf("%s%06d", str, num); 或者使用String.format函数将其存储在变量中: String myConca

我有一个字符串如下

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));

}

for(int i=1;i如果在int数据类型中存储“000001”,它将被视为八进制。即

INTA=000001; System.out.println(a); 输出:1 它将把它当作八进制数


因此,您不能在int中存储以0开头的数字,因为编译器将对其进行类型转换。因此,您只能使用字符串:)

请尝试以下代码。它不仅显示字符串,还可以更改字符串。 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();
    }
}

你的预期产出是多少?你能和我们分享你的代码吗?可能是重复的,你能扩展你的答案来得到字符串吗?而不仅仅是显示它。%s代表字符串,%d代表十进制。。06用于填充,也可以搜索printf。有许多文档和示例。@TraxX他的意思是想将结果保存在变量中。在回答中,只需打印它。您可以使用String.format并将其存储在variableHi-Trax中,假设我将其放入for循环中,我想将00001更改为00002,直到100,但我的要求是00001应始终为5位,这意味着当循环到10时,数字应为00010,当循环到100时,数字应为00100。我怎样才能按照你的答案来做呢。如果你能用代码给我解释一下,那会很有帮助的