java的util包简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 01:48:24
import java.util.Date;
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));试试