2016-07-02 5 views
0

"if"문을 실행하는 데 어려움이 있습니다. CharSequence가 검색해야하는 "내 모든 것을 좋아"한다고 입력하면 코드는 else 문에서 오류를 찾습니다. 나는 contains 메소드가 CharSequence를 사용하여 단 하나의 문자를 식별하려고 시도하여 공백을 읽지 않는지 알아보기 위해 노력했다. 그건 도움이되지 않았어. 또한 contains 메서드를 boolean으로 변경하고 boolean이 true 인 경우 if 문을 실행하려고했습니다. 그것도 작동하지 않았다. 나는 다른 코드를 조금 둘러 보았고 비슷하게 보입니다. Eclipse는 내가 시작한 오류를 표시하지 않으며 시도 할 다른 것에 대한 단서도 없습니다. 내 코드를 정리하는 방법이나 더 잘 작동 할 수있는 방법에 대한 추가 힌트가있는 경우. 건설적인 비판을하십시오."if, else"문과 함께 contains 메소드를 사용하려면 어떻게해야합니까?

import java.util.Scanner; 

public class hello { 

    public static void main(String args[]) { 

     Scanner scan = new Scanner(System.in); 
     try { 
      System.out.println("Hi, what is your name?"); 
      String name1 = scan.next(); 
      System.out.println("Hello "+ name1 + ". Tell me what you like about yourself?\n" 
        + "Please pretext what you like about yourself with the phrase 'I like my'."); 
      String selfEsteem = scan.next(); 
      CharSequence searchString = "I Like my"; 

      if (selfEsteem.contains(searchString)) { 
       selfEsteem = selfEsteem.replace("my", "your"); 
       System.out.println(selfEsteem + "also."); 
      } else { 
       System.err.println("Error: User did not use 'I like my' input format"); 
      } 
     } finally { 
      scan.close(); 
     } 
    } 

} 

출력 :

안녕, 당신의 이름은 무엇인가? Janet 안녕하세요 Janet. 네가 너 자신에 관해 뭘 좋아하는지 말해줘? 'I like my'라는 문구로 자신에 대해 좋아하는 것을 구실하십시오. 내 가슴 오류를 좋아 : 텍스트가 "I like my"있는 동안 사용자는 귀하의 searchString

+1

에서 어떤 경우 사용자 유형은 아마도처럼 단어의 케이스를 확인 하는가? 대소 문자를 구분해야하며 "I like my"가 아닌 "I like my"를 찾고 있습니다. – daf

+0

"L"을 "l"로 변환하고 파일을 저장하며 꼼꼼하게 내 대답을 입력하면 도착합니다. 동일한 오류 메시지? 다른 아이디어? – ucodebro3

+0

내 실수는 scan.nextLine()을 사용하는 대신 scan.next() 메서드에서 발생했습니다. 시간 내 줘서 고마워. – ucodebro3

답변

0

"I Like my"입니다 입력 형식 '내 마음'사용하지 않았다. 따라서 귀하의 사용자는 소문자를 입력하고 contains은 대소 문자를 구분하므로 찾을 수 없습니다. 에

변경 : 당신은 당신의 오류 마사지하는 동안 "I Like my"를 검색

CharSequence searchString = "I like my"; 
+0

제안 된 변경 내용을 적용했지만 여전히 오류 메시지가 나타납니다. 나는 또한 검색 문자열을 CharSequence 유형 대신 String 유형으로 선언하려고 시도했지만 잘못되었습니다. – ucodebro3

0

'I like my'해야했다.

대소 문자를 구별합니다.

"I Like my"을 입력하거나 searchString을 "I like my"로 변경하십시오.

+0

내 searchString을 "I like my"로 변경했으며 else 문에서 같은 오류 메시지를 만났습니다. 추가 아이디어가 있으십니까? – ucodebro3

+0

입력하는 정확한 입력을 복사 할 수 있습니까? – Shiro

+0

실수를 발견했습니다. scan.nextLine() 대신 scan.next() 만 사용하여 모든 것을 엉망으로 만들었습니다. 그래도 시간 내 주셔서 감사합니다. – ucodebro3

0

사용

if (selfEsteem.containsIgnoreCase(searchString)) 
    ... 

대신 다음

if (selfEsteem.contains(searchString)) 
    ... 

이 중요하지.