[英]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.