java的util包简单问题
来源:百度知道 编辑:UC知道 时间:2024/05/25 01:48:24
import java.util.Calendar;
public class TestSeven1 {
Calendar objcalendar;
TestSeven1()
{
//Calendar.getInstance()返回默认地区和时区的Calendar对象
objcalendar=Calendar.getInstance();
}
void display()
{
System.out.println("月份:"+objcalendar.get(Calendar.MONTH)+1);
}
public static void main(String[] args) {
TestSeven1 test=new TestSeven1();
test.display();
}
}
我想要得到月份。。但是为什么不是3月。。而是21月??
我也没加错地方呀??不解。。。很不解
我觉得二楼的解释还不够清楚,补充说明一下:
System.out.println("月份:"+objcalendar.get(Calendar.MONTH)+1);
因为prntln()括号中的运算是从左到右算的,所以先进行
"月份:"+objcalendar.get(Calendar.MONTH),这时objcalendar.get(Calendar.MONTH)=2自动转化为字符串添加到“月份:”后面,然后与1相加,这是1也要转化为字符串,然后加到后面,因此就得到“月份:21”这个结果。关键在于计算的先后顺序。只需要保持后两项先加就行了,如:System.out.println("月份:"+(objcalendar.get(Calendar.MONTH)+1));
希望这么说了,你能理解!以后也不会犯这种错了!
给你解释一下吧~~ 错误出现在
System.out.println("月份:"+objcalendar.get(Calendar.MONTH)+1);
注意,输出流输出的其实是String ,那么你在String的后面加了一个1 ,java转换成String相加了!
所以本来要输出2 ,你+1 ,结果就成21了!
嘿嘿~~我以前也经常犯这种错误
!
换成这样
System.out.println("月份:"+(objcalendar.get(Calendar.MONTH)+1));
或
System.out.println(objcalendar.get(Calendar.MONTH)+1);
System.out.println("月份:"+objcalendar.get(Calendar.MONTH));试试