2012-12-01 3 views
1

내 배열은 내가하는 방법 findDay를 사용하여 배열의 인덱스를 인쇄해야이문자열 배열에서 문자열의 인덱스를 얻는 것은

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"; 

같이 보입니다.

"토요일"을 선택한 경우 6을 반환해야합니다.

시간 내 주셔서 감사합니다. D P. 답변이 없습니까? 그냥 제안 =) 컴파일되지 않습니다

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"; 

및 I로 시작하는 여러 오류를 얻을 :

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 루프를 사용하여 솔루션을 제안하십시오. 그렇지 않다면 배우십시오. – jonathanasdf

+0

제안 : iteration, comparison. – JimN

+0

@jonathanasdf 나는 "토요일"과 6 롤 실패 의미 ... 그리고 예 내가 루프를 통해 갔다, 도전적으로 내 노트를 살펴볼 것입니다! 감사!! – WannaBeDroidProgrammer

답변

1

지도를 사용하면 키가 일이며 값은 색인입니다.

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

Value = > 0,1,2 .. 

필요한 키와 값을 매핑하십시오.

public int findDay(String dayString) { 
    if (dayString.equals("Sunday") { 
     return 0; 
    } 
    else if (dayString.equals("Monday") { 
    ... 

당신은 그것의 요점을 얻을 -하지만 상당히 crufty 해결책 :

1

글쎄, 그것을 할 수있는 한 가지 방법은 다음과 같이 될 것이다. 좋아, 그럼 당신은 실제로 열거의 배열을 가질 수

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"); 

연습용으로 색인 값을 인쇄 해 두겠습니다.

관련 문제