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。我怎样才能按照你的答案来做呢。如果你能用代码给我解释一下,那会很有帮助的