2013-08-04 1 views
0

char있는 단어를 찾을 수 있지만 char 참조 할 수 없기 때문에 나는 indexOf 메서드를 사용하여 노력하고있어 문자열로 변환해야한다고 가정합니다. Methods하지만 정확하게 비교하지 않는 것 같습니다. 어떻게 'indexOF'에 참조 된 문자를 사용해야합니까? 이 내 코드 로직 바보 같은 문제가있는 경우 여기에 내 코드는 내가 당신이 주변에 길을 잘못 indexOf 사용하고 생각어떻게 참조 된 char 함께 IndexOf 사용할 수 있습니다.

guess = JOptionPane.showInputDialog("Enter letter ").toUpperCase().charAt(0); 

    if((String.valueOf(guess)).indexOf(word.toUpperCase())>=0) 
    { 
     for(int k = 0; k<word.length(); k++) 
     { 
      if(guess==charwo[k]) 
      { 
       charda[k]=charwo[k];     
      }   
     } 
    } 
    else 
    { 
     guesses = guesses-1; 
     System.out.println("guesses left "+guesses); 
    } 

답변

1

,이 라인은 거꾸로 생각 :

if((String.valueOf(guess)).indexOf(word.toUpperCase())>=0) 

if(word.toUpperCase().indexOf(String.valueOf(guess).toUpperCase) >=0) 

해야 당신도

if(word.toUpperCase().contains(String.valueOf(guess).toUpperCase)) 
+0

if (word.toUpperCase(). contains (String.valueOf (guess). toUpperCase)) -이 기능은 실제로 나를 위해 더 잘 작동하는 것 같았습니다. – nmu

3

사과입니다. 당신이 (다른 방법으로 주위에 정말 이해가되지 않습니다) word에서 guess의 인덱스를 찾는 가정이 있어야한다 : 여기

word.toUpperCase().indexOf(guess) 

없음 역 참조 문제를 거기에 indexOf(int) 기능 때문이다.

contains 아마 불행하게도 그것은 CharSequence 매개 변수 (String의 슈퍼 클래스)를한다, 그래서 당신은이 경우 Stringguess 변환해야 것, 조금 더 읽기 코드를 만들 것입니다. 방법 나는 보통 같은 String에 프리미티브를 변환 : 덜 입력 때문에

word.toUpperCase().contains(""+guess) 

나는 그것이 String.valueOf보다 더 나은 말하는 게 아니에요하지만, 나는 단지 그것을 사용합니다. 내가 잘못 본게 아니라면

+0

예를 완벽하게 감사를 많이 할 수 있습니다 :) – nmu