[英]how to prefix to a primitive data type
在这里我有一个问题。 我希望用户输入一些数字,然后将输入转换为字符串,然后计算字符串的长度,如果小于8,我想在输入中添加更多零以使其为8这样我就可以做一些职员。 我试图使用小数格式,但无法正常工作。 请帮助 。
提前致谢
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);
不用使用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 NOT 5处的值。
对于144的示例,位置2、3、4和5使用起始索引2,终止索引6
System.out.println(getSubNumber(2,6,144)); // = 1
即使您将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));
}
}
如果需要在值后面加上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())
}
我认为这是最简单的方法。
编辑 Ahhh,是的...问题中有prefix
。 没关系!
DecimalFormat是按照我们提供模式的方式来格式化数字。
并添加零,请按照下列步骤操作: 在字符串中添加前导零
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.