2011-05-04 3 views
2

자바 용 dinky 코드를 작성 중입니다. 프로그램을 작성해야합니다. 1) 입력 문장의 첫 단어를 대문자로, 2) "I"를 대문자로, 3) 문장을 문장 부호로 사용하십시오. 적절한 구두점이 없습니다. 코드를 쉽게 작성했지만 조금 지저분합니다. 특히 조건부 특수 문자를 사용하는 방법에 대해 궁금합니다. 내가 쓰기에 대해 갈 것이라고 어떻게문자열이 특정 문자로 끝나는 지 확인하려고 할 때 호환되지 않는 유형 오류가 발생하는 이유는 무엇입니까?

: 나는 그것을 (문자 및 java.lang.String의 호환되지 않는 유형)를 컴파일 할 때

String sentence = IO.readString(); /* IO.readstring is irrelevant here, it's just a   scanning class that reads a user input*/ 
int length = sentence.length(); 
char punctuation = sentence.charAt(length - 1); 
if (punctuation != "." || punctuation != "?" || punctuation != "!") 
    { 
     sentence = sentence + "."; 
    } 

나에게 호환되지 않는 유형의 오류를주고있다 예를 들어

, 이 조건부?

답변

8

문자열을 의미하는 ""을 사용할 때. 문자의 경우 '.' (작은 따옴표)을 사용하십시오. 자바에서 문자

1

사용 따옴표 : 질문은 나에게 완전히 명확하지 이후

if (punctuation != '.' || punctuation != '?' || punctuation != '!') 

나는 당신의 논리를 확인하지 않았습니다.

0

리터럴 문자는 작은 따옴표로 구분됩니다. 'x'.

리터럴 문자열은 큰 따옴표로 구분됩니다 ("x").

문자는 프리미티브이며 문자열은 객체 (java.lang.String 클래스)이며 프리미티브를 객체와 비교할 수 없습니다.

0

여러 문자를 확인하기위한 짧은 손

if (".?!".indexOf(punctuation) < 0) 
    sentence += '.'; 
경우 String.indexOf을 사용하는 것입니다
관련 문제