2012-12-01 52 views
1

我的陣列看起來像這樣得到一個字符串的索引中的字符串數組

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 P.s.請沒有答案?只是建議=)

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] 

我不明白爲什麼。我直接從 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

+3

你的意思是「星期六」和「6」?或者也許是「星期天」和「0」?另外,你是否瞭解了for循環?如果是,那麼嘗試使用for循環來提出解決方案。如果沒有,去了解它:) – jonathanasdf

+0

建議:迭代,比較。 – JimN

+0

@jonathanasdf我的意思是「星期六」和6大聲失敗...是的,我已經過了循環,會挑釁地看看我的筆記!謝謝!! – WannaBeDroidProgrammer

回答

1

複製精確格式使用地圖您的密鑰是天和值是索引。

Key => Sunday , Monday , Tuesday ..... 

Value = > 0,1,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(); 
2

你可以這樣做...

int index = Arrays.asList(dayNames).indexOf("Saturday"); 

我會爲您打印索引值作爲練習。

相關問題