int i = 123+0000123; 这个是一个int型的?.......没看懂 不是啦,这个是测试数据,满足你的要求 -_- 实际上,你真正输入的时候可以忽略前面的0的 就直接输入123+99啦, 1+200003啦之类的 然后调用String studentNumber = sf.getStudentFormat(int number)方法把number放进去,输出的就是标准格式String类的学号了----------------------------- DecimalFormat nf = new DecimalFormat("#"); 这个什么意思啊 我看了api # 数字字 是 阿拉伯数字,如果不存在则显示为 0 还不明白什么意思你可以试试这行如果改成 DecimalFormat nf = new DecimalFormat();会是什么效果,就明白它的作用了 ^ ^
public static void main(String[] args) { StudentFormat sf = new StudentFormat();
String str = "0000001"; int iValue= 99; //需要先将str转化成int再进行求和 int intStr = Integer.parseInt(str); //要求返回结果是0000100 String studentNo = sf.getStudentFormat(iValue + intStr);
//测试输出 System.out.println(studentNo); }
int i = 0000123; 我这样赋数值竟然没错 为什么??但是int i = 001+99就错 但是int i = 99+ 001就对 为什么??
int i = 001+99可以运行通过啊
我估计是Java编译器在编译的时候直接把001转化成1了,所以运行才不会出问题。
import java.lang.Integer; class t { public static void main(String[] args) { String no = "00000001"; int x=10; int re = Integer.valueOf(no).intValue(); re = re + x; no = String.valueOf(re); int a = no.length(); for(int i = 0; i < 8 - a ; i++){ no = "0" + no; } System.out.println(no); } }
想了半天做法都很笨笨啊
例如:
0001+10=00110999999+2 =100001
就是
比如学生学号是
00000001啊
我现在要加x获得结果
例如
0001+10=00110999999+2 =100001
加x获得的结果是0011?这其中X指代的是什么?
为什么要加?
获得的结果是什么含义?你不把这个说清楚,别人怎么帮你啊~最好把整个要求说清楚
比如
所需功能:1、2、3……
具体参数(变量)指代的显示含义:x、y、z
所需功能:把学生id按照要求增加若干个具体参数(变量)指代的显示含义:x(若干个)public static void main(String [] args){String str = "0000001";
int iValue= 99;要求返回结果是0000100
System.out.println(str + iValue);}明白吗????还不明白我在说啊。.表达能力有问题sorry.....555
/*
* @author talent_marquis<甜菜侯爵>
* Email: [email protected]
* Copyright (C) 2007 talent_marquis<甜菜侯爵>
* All rights reserved.
*/
package format.number;import java.text.DecimalFormat;public class StudentFormat
{
public String getStudentFormat(int number)
{
//设置十进制数的格式,不显示千位分隔符
DecimalFormat nf = new DecimalFormat("#");
//设置最大显示位数为8位
nf.setMaximumIntegerDigits(8);
//设置最小显示位数为8位,不足八位的会自动用0填充
nf.setMinimumIntegerDigits(8);
//返回该数字格式化后的String值
return nf.format(number);
}
public static void main(String[] args)
{
StudentFormat sf = new StudentFormat();
//测试数据
String studentNo = sf.getStudentFormat(123+0000123);
//测试输出
System.out.println(studentNo);
}}
这个是一个int型的?.......没看懂
这个什么意思啊
我看了api
# 数字字 是 阿拉伯数字,如果不存在则显示为 0
还不明白什么意思
这个是一个int型的?.......没看懂
不是啦,这个是测试数据,满足你的要求 -_-
实际上,你真正输入的时候可以忽略前面的0的
就直接输入123+99啦, 1+200003啦之类的
然后调用String studentNumber = sf.getStudentFormat(int number)方法把number放进去,输出的就是标准格式String类的学号了-----------------------------
DecimalFormat nf = new DecimalFormat("#");
这个什么意思啊
我看了api
# 数字字 是 阿拉伯数字,如果不存在则显示为 0
还不明白什么意思你可以试试这行如果改成
DecimalFormat nf = new DecimalFormat();会是什么效果,就明白它的作用了 ^ ^
{
StudentFormat sf = new StudentFormat();
String str = "0000001";
int iValue= 99;
//需要先将str转化成int再进行求和
int intStr = Integer.parseInt(str); //要求返回结果是0000100
String studentNo = sf.getStudentFormat(iValue + intStr);
//测试输出
System.out.println(studentNo);
}
我这样赋数值竟然没错
为什么??但是int i = 001+99就错
但是int i = 99+ 001就对
为什么??
class t
{
public static void main(String[] args)
{
String no = "00000001";
int x=10;
int re = Integer.valueOf(no).intValue();
re = re + x;
no = String.valueOf(re);
int a = no.length();
for(int i = 0; i < 8 - a ; i++){
no = "0" + no;
}
System.out.println(no);
}
}
String不转换的话
如果直接加
那"000001"+99的结果就该是“00000199”了,而且还是一个字符串 -_-~