我有一个问题。我希望用户输入一些数字,然后我将输入转换为字符串,然后我将计算字符串的长度,如果它小于8,我想在输入中添加更多的零使其成为8所以我可以用这个数字来做一些工作人员。我试过使用decimalformat但它不起作用。 PLZ帮助。
提前致谢
int s=Integer.parseInt(s1.readLine());
String news=String.valueOf(s);
if(news.length()<8){
DecimalFormat myformat=new DecimalFormat("00000000");
String out= myformat.format(s);
int onth=(Integer.valueOf(out)).intValue();
s=onth;
}else{
System.out.format("your number is: %d\n",s);
答案 0 :(得分:1)
忘记使用DecimalFormat。
将格式更改为以下
System.out.format("your number is: %08d\n",s)
%08d将以零为首,宽度为8。
这只会以您请求的格式显示数字。正如本主题中其他地方所述,将其视为数字会删除前导零。
但是,如果要将其存储在String变量中,可以使用
String intString = String.format("%08d", s);
存储它。
因为您特别需要在子字符串之间获取一系列数字 以下代码将执行您想要的操作。
private static int getSubNumber(int startIndex, int stopIndex, int number) {
String num = String.format("%08d", number);
return Integer.parseInt(num.substring(startIndex, stopIndex));
}
如果您传入要转换的数字,它会将其更改为字符串,然后将您传入的两个索引之间的子字符串转换回数字
System.out.println(getSubNumber(2,5,12345678)); // = 345
System.out.println(getSubNumber(2,5,12345)); // = 12
System.out.println(getSubNumber(2,5,123)); // = 0
这是非包容性的,getSubNumber(2,5,...)获取位置2,3和4不是5的值。
对于144的示例,使用起始索引2,停止索引6的位置2,3,4和5
System.out.println(getSubNumber(2,6,144)); // = 1
答案 1 :(得分:0)
即使您在int前面加零,实际值也会更改为原始值。如果你想要填充,你必须使用字符串。 out变量将为您提供结果。
根据评论进行更新
import java.util.Scanner;
public class SquareSubString {
public static void main(String[] args) {
String userInputSquare = getSquaredInput();
int digits2to5 = Integer.parseInt(userInputSquare.substring(2, 6));
System.out.println("Squre of digits 2 to 5 is : " + (digits2to5 * digits2to5));
}
private static String getSquaredInput() {
System.out.println("Enter a number : ");
Scanner in = new Scanner(System.in);
int input = in.nextInt();
in.close();
return String.format("%08d", (input * input));
}
}
答案 2 :(得分:0)
如果您需要在值之后添加0
,则可以将其乘以10 pow
丢失的数字0:
int result = Integer.parseInt(news);
if(news.length()<8){
int diff = 8 - news.length();
result = result * Math.pow(10, diff); // ==> result = result * 10^(8 - news.length())
}
我认为这是最简单的方法。
编辑啊,是的......问题中有prefix
。没关系!
答案 3 :(得分:0)
DecimalFormat是按照我们给出模式的方式格式化数字。
要附加零,请按照以下步骤操作: Add leading zeroes to a string