2014-06-20 4 views
-3

제목이 말했듯이, 어떻게 JAVA에서 그것을 할 수 있습니까? 예를 들어문자열이 문장 부호로 끝나는 지 어떻게 알 수 있습니까?

, 말

String example="Hello?"; 

문자열이 포함 ?, 나는 자바를 사용하여 감지해야합니다.

편집 ?뿐만 아니라 모든 구두점을 감지해야합니다.

+0

문제를 두 단계로 나눌 필요가있는 것 같습니다. 먼저 물음표와 같은 특정 구두점을 어떻게 감지 할 수 있습니까? 아래 답변을 통해 도움을 얻을 수 있습니다. 둘째,이 방법을 프로그래밍 방식으로 다른 마크에 여러 번 적용 할 수 있습니까? 루프와 같은 제어 흐름 구조를 참조하여 도움을받을 수 있습니다. – CosmicComputer

+0

내가 질문에서 말했듯이, 마지막 문자가 구두점이면, 나는 true를, 그렇지 않으면 false를 돌려 줄 필요가있다. 나는 당신의 대답을 사용할 수있는 것은 아닙니다. –

+1

그의 대답을 사용할 수 있습니다. . 자열의 끝을 구두점의 벡터와 비교하십시오. 그것이 사실이라면 그것을 돌려 보내십시오. 그는 재사용하고 컨트롤 플로우를 사용하여 벡터를 반복 할 수 있도록 메소드를 생성 할 것을 제안합니다. –

답변

2

당신은 정규식과
!"#$%&'()*+,-./:;<=>[email protected][]^_`{|}~ 문자 중 하나를 나타냅니다 사전 정의 된 \p{Punct} 클래스를 사용할 수 있습니다. 전체 문자열이 당신은 또한 구두점 전에 문자와 일치 할 필요가 정규식과 일치 할 수 있다면 그냥

if (yourString.matches(".*\\p{Punct}"); 

matches 이후 검사를 사용합니다. 이렇게하려면 .*을 사용할 수 있습니다. 여기서 .은 새 문자를 제외한 모든 문자를 나타내며 *은 0 회 이상을 의미합니다.

당신은 .?!에 맞게 예를 [.?!]에 대한 사용하여 자신의 character class를 정의 할 수 있습니다 \p{Punct}에서 모든 문자를 포함하지 않는 경우

.

-2

사용 endsWith(char)

example.endsWith('?') 
+0

"?"에 대해서만 아니오. 모든 구두점이 발견되면이를 찾아야합니다. –

+1

이고 모든 구두점이 표시되지 않습니다. – NimChimpsky

+0

전체 솔루션이 아닌 사용할 수있는 예입니다. –

1

문자열의 마지막 문자를 가져 와서 정규 표현식을 사용하여 유효성을 검사하십시오.

관련 문제