try-catch不能用在循环中吗

_Looong_ 2017-05-20 06:06:36
java新人,想写个程序输入amount条记录,提取其中的日期,再通过Calendar提取其中月份


import java.util.Date;
import java.util.Scanner;
import java.util.Calendar;
import java.text.SimpleDateFormat;

public class test {
public static void main(String[] args) {
String ss;
String[] record;
int temp_month,i;
Calendar calender = Calendar.getInstance(); //////建立Calender对象 从而能直接取月份等等

Scanner scanner = new Scanner(System.in);
System.out.println("请问要输入几条记录?");
int amount = scanner.nextInt();

record = new String[amount];
for(i=0; i<amount; i++){ /////读入amount个字符串
record[i] = scanner.nextLine();
}

Date date = new Date();
SimpleDateFormat ma2=new SimpleDateFormat("yyyy/MM/dd"); //设定一种日期形式

for(i=0; i<amount;i++){ ///对record中的amount个字符串进行处理
try{
date = ma2.parse(record[i]); /////把字符串转成ma2型的Date对象date
System.out.println(ma2.format(date)); ////输出字符串“2017/05/01”
calender.setTime(date); //////把date对象da转化为Calender对象 然后就可以取月份
}
catch(Exception e){
System.out.println("no!!");
}
temp_month = calender.get(Calendar.MONTH) + 1;
System.out.println(temp_month);
}

}
}




...全文
431 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Looong_ 2017-05-20
  • 打赏
  • 举报
回复
真的是这样...
dai_huaqiang 2017-05-20
  • 打赏
  • 举报
回复
你用scanner.nextint读取的时候只读走了数字 \r是在缓冲区里的 被下一个scanner.nextline读走了 结果就出错了 int amount = scanner.nextInt(); 在上面这句下面加这句话就可以了 scanner.nextLine();
_Looong_ 2017-05-20
  • 打赏
  • 举报
回复
输入
结果显示

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧