2013-05-12 2 views
-2

나는 아래의 요소와 스택 (기록)이 있습니다Java가 메소드와 같거나 메소드를 포함하고 있습니까?

first 20130512142202 
second 20130512142204 
third 20130512142206 
fourth 20130512142209 
fifth 20130512142212 

및 문자열 값이 스택에서 다른 곳이라고합니다 ("두 번째"라고 할 수 있습니다) 만약 내가 확인하고 싶다. 은 그래서 시도 :

while(!Records.empty()) { 
    String checkRecord=Records.pop().toString(); 
    if(checkRecord.equals("second")) { 
     System.out.println(checkRecord + " found"); 
    } 

    else { 
     System.out.println(checkRecord +" not found"); 
    } 
} 

System.out.println("END OF STACK"); 

false를 반환 같음과 "둘째는"정확히 "초 (20130512142204)"와 동일하지 않기 때문에 즉, 괜찮습니다. 그래서 나는 다른 무언가를 필요로하고 나는 사실 반환하지만도에 true를 돌려 contains() 시도 : 내가 필요한 것을 구현하기 위해

string test = "second 20130512142204"; 
test.contains(rt); 

입니다 포함() 올바른 올바른 선택을하거나 내가 다른 방법/수정을 시도해야 내 암호? 내가 줄 문자열이 스택의 행의 일부인 경우에만 참을 싶습니다.

+0

두 가지 방법 모두 정확히 무엇을 의미하는지 알고 있습니다. 정확히 무엇이 필요한지 상세히 설명해 주시겠습니까? 일부 예제와 예상 출력을 게시하십시오. – Thihara

+0

대신지도를 사용할 수 없습니까? 귀하의 데이터 구조가 쌍의 집합 인 것 같습니다. 그렇다면 값/키에 쉽게 액세스 할 수 있습니다. –

+0

예 ... 두 방법 모두 정확히 동일합니다. StartWith는 옵션이 될 수 있지만 여전히 적절한 답을 얻을 수 있도록 더 나은 예제를 제공해야한다고 생각합니다. – amod

답변

0

특히 문자열을 찾는 데 관심이있는 경우 질문의 스택 예제에서 "초"가 시작됩니다. "를 사용 .contains() 함수는 위의 코드와 정확히 동일해야" ".startsWith() 함수

그래서 코드는 또한

while(!Records.empty()){ 
     String checkRecord=Records.pop().toString(); 

     //True when the current checkRecord string startsWith "second" 
     if(checkRecord.startsWith("second")) 
     { 

      System.out.println(checkRecord + " found"); 
     }else{ 
      System.out.println(checkRecord +" not found"); 
     } 
    } 
    System.out.println("END OF STACK"); 

입니다." 왜 그것이 당신을 위해 작동하지 않았는지 이해가 안됩니다.

관련 문제