Java 如何使int输入与子字符串关联?
我正在尝试编写一个程序,从用户那里获取输入。输入数字1-12,它将返回月份1-12。我必须将所有月份放在一个长字符串中,然后使用子字符串返回相应的月份 我很困惑如何得到一个int来关联到一个子串。我希望有一些这样做的一般准则。我不希望为我完成整个程序。不要使用Java 如何使int输入与子字符串关联?,java,Java,我正在尝试编写一个程序,从用户那里获取输入。输入数字1-12,它将返回月份1-12。我必须将所有月份放在一个长字符串中,然后使用子字符串返回相应的月份 我很困惑如何得到一个int来关联到一个子串。我希望有一些这样做的一般准则。我不希望为我完成整个程序。不要使用substring()。如果您有一个月名称的csv,请使用split()将字符串转换为数组: String months = "January,February,etc"; int choice; // 1-12 String monthN
substring()
。如果您有一个月名称的csv,请使用split()
将字符串转换为数组:
String months = "January,February,etc";
int choice; // 1-12
String monthName = months.split(",")[choice - 1];
请注意,java数组是基于零的,所以当用作索引时,必须从1-12范围内的数字中减去1
更容易阅读的是:
static String[] monthNames = "January,February,etc".split("");
然后在您的方法中:
String monthName = monthNames[choice - 1];
使用子字符串获取月份值时,将其存储在字符串数组中。然后通过索引+1得到1-12的值 除了使用
Split
之外,还可以使用StringTokenizer
解析字符串
我的代码:
int i = 1;
int month = 0;
while (i == 1) {
System.out.println("Enter your number ");
Scanner input = new Scanner(System.in);
month = input.nextInt();
if (month > 13 || month < 0) {
System.out.println("your number has to be between 1 and 12");
} else {
i = 2;
}
}
List<String> monthList = new ArrayList<>();
StringTokenizer st = new StringTokenizer("January February March April"
+ " May June July August September October November December");
while (st.hasMoreTokens()) {
monthList.add(st.nextToken(" "));
}
System.out.println("the month is " + monthList.get(month - 1));
一般指导:不要这样做。在数组中存储月份,然后快乐地生活。好的,我必须使用子字符串。这就是我正在研究的问题。编写一个程序,将1,2,3…12转换为相应的月份1月,2月。。。制作一个很长的字符串“一月-二月-三月…”,在其中添加空格,使每个月的名称具有相同的长度。然后使用子字符串提取所需月份。
Enter your number
333
your number has to be between 1 and 12
Enter your number
3
the month is March