问题描述
- java编程,菜鸟的小问题
-
用eclipse写一段程序实现输入1显示1月输入2显示2月。怎么设置当输入为字母时提示“输入有误!”在线急等!!
解决方案
import java.util.Scanner;
public class ddsds {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个月份");
String s=sc.next();
if(s.matches("[0-9]{2}||[1-9]")){ //判断输入的信息为1位或2位的数字
int i=Integer.parseInt(s);
if(i>=1&&i<=12){
System.out.println(s+"月");
}else{
System.out.println("输入的月份不对");
}
}else{
System.out.println("请输入数字格式的月份");
}
}
}
解决方案二:
定义一个数组int[12] date={1,2,3,4,5,6,7,8,9,10,11,12};public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
int[] dates = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
String answer = "N";
do {
boolean flag = true;
System.out.println("请输入月份");
int date = sc.nextInt();
for (int i = 0; i < dates.length; i++) {
if (date == dates[i]) {
flag = false;
}
}
if (flag) {
System.out.println("输入的月份不对");
} else {
System.out.println("输入的月份为" + date + "月");
flag = true;
}
System.out.println("是否退出输入月份 Y/N");
answer = sc.next();
} while ("N".equals(answer));
}
解决方案三:
我觉得这样就可以了。 int month = scanner.nextInt(); if (month >= 1 || month <= 12) {} else {System.out.println("输入有误")}
解决方案四:
Scanner scanner = new Scanner(System.in);
while(true){
String input = scanner.next();
int month = -1;
try {
month = Integer.parseInt(input);
if (month >= 1 && month <= 12) {
System.out.println(month+"月");
} else{
System.out.println("不存在该月");
}
} catch (Exception e) {
System.out.println("输入有误");
}
}