我的数组看起来像这样
String[] dayNames = new String[DAYS_IN_WEEK];
dayNames[0] = "Sunday";
dayNames[1] = "Monday";
dayNames[2] = "Tuesday";
dayNames[3] = "Wednesday";
dayNames[4] = "Thursday";
dayNames[5] = "Friday";
dayNames[6] = "Saturday";
我需要使用findDay方法打印数组的索引。
所以如果选择“星期六”,我需要返回6个。
谢谢你的时间= D. 附:没有答案吗?只是建议=)
UPPDATE * * 的
我的数组不会编译。这正是我所拥有的:
private static final int DAYS_IN_WEEK = 7;
String[] dayNames;
dayNames = new String[DAYS_IN_WEEK]
// Declare an array of Strings named dayNames
dayNames[0] = "Sunday";
dayNames[1] = "Monday";
dayNames[2] = "Tuesday";
dayNames[3] = "Wednesday";
dayNames[4] = "Thursday";
dayNames[5] = "Friday";
dayNames[6] = "Saturday";
我从以下开始出现多个错误:
Weekdays.java:12: error: <identifier> expected
dayNames = new String[DAYS_IN_WEEK]
我不明白为什么。我从字面上复制了EXACT格式 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
答案 0 :(得分:2)
你可以这样做......
int index = Arrays.asList(dayNames).indexOf("Saturday");
我将打印索引值作为练习。
答案 1 :(得分:1)
使用地图,您的密钥是日期,而值是索引。
Key => Sunday , Monday , Tuesday .....
Value = > 0,1,2 ..
根据您需要的密钥映射值。
答案 2 :(得分:1)
嗯,一种方法就是这样:
public int findDay(String dayString) {
if (dayString.equals("Sunday") {
return 0;
}
else if (dayString.equals("Monday") {
...
你得到了它的要点 - 但这是一个相当狡猾的解决方案。
另一种方法是使用Java的枚举值:
public enum Day {
SUNDAY(0), MONDAY(1), TUESDAY(2), WEDNESDAY(3) ...
private final int i;
private Day(int value) {
i = value;
}
public int getNumericRepresentation() {
return i;
}
}
然后你可以实际拥有一系列枚举,例如:
Day[] days = new Day[Day.values().size()];
int i = 0;
for (Day day : Day.values()) {
days[i] = day;
i++;
}
要打印出一天的数字表示,您只需使用:
day.getNumericRepresentation();