2013-08-25 3 views
1

나는 자바 초보자이며 내 질문에 조금 끔찍한 보일지도 모르지만 도움이 될 것입니다!문자열, 문자를 인식하는 방법

어쨌든 내 질문에 잘 책에서 질문은 :

"알파 내기에서 단일 문자를 제공하라는 메시지를 표시하는 프로그램을 작성 인쇄 모음이나 자음, 사용자 입력에 따라 만약이.. 사용자 입력이 a와 z 또는 A와 Z 사이의 문자가 아니거나 길이가 1보다 큰 문자열 인 경우 오류 메시지를 인쇄하십시오.

입력이 문자가 아닌지 어떻게 확인할 수 있습니까? 감사합니다.

+2

'(입력> ='a '&& 입력 <='z ') || 비교할 문자 범위 사용 영어 표준 문자 세트 –

+3

에 대해 (입력> = 'A'&& 입력 <= 'Z')'구체적인 문제가 발생하면 여기에 ... –

+1

[Character.isLetter] (http://docs.oracle.com /javase/7/docs/api/java/lang/Character.html#isLetter(char)) – DaoWen

답변

0

단순한이 사람은

입니다. 가장 일반적인 언어
public static final int VOWEL = 0; 
public static final int CONSONANT = 1; 
public static final int OTHER = 2; 

public int getCharType(char c) { 
    switch(c) { 
    case 'a': 
    case 'A': 
    case 'e': 
     ... 
     return VOWEL; 

    case 'b': 
    case 'B': 
    case 'c': 
     ... 
     return CONSONANT; 

    default: 
     return OTHER; 
    } 
} 
+2

"컴파일하지 않음"과 같은 간단한 "?" – Mat

+2

@Mat - 분명히 컴파일 할 의도가 없습니다. –

3

입력 ACII입니다. 당신이 사용자로부터 편지를받을 때 어떤 아스키를보고,이 테이블 http://www.cdrummond.qc.ca/cegep/informat/professeurs/alain/images/ASCII1.GIF

보면, 당신은 char를 얻을. 이 숯불에는 아스키 테이블과 관련하여 문자 인 숫자가 들어 있습니다. 즉, 숯에 75 문자가 있다면 문자가 있는지 알아 보려면 'K'

이 필요합니다. 하는 것입니다 : 편지가 하나씩 때문에

char c;// Your char 

Scanner scan = new Scanner (System.in); 
c = scan.nextChar(); 

if((c>= 'a' && c<= 'z') || (c>= 'A' && c<= 'Z')) 
{ 
    // you got a letter 
} 
else 
{ 
    //That's not a letter 
} 

은 당신이 그렇게 할 수 있지만, 어쩌면

+1

기술적으로 Java는 ASCII가 아닌 유니 코드를 사용합니다. 그리고 여러분의 코드가 처리하는 것 이외의 문자가 많이 있습니다. 그러나이 솔루션이 만족할 것이라고 확신합니다. –

1

그들 사이의 몇 가지 징후가 있기 때문에 당신이

if(c>= 'A' && c<= 'z') 

할 수 없습니다 네가 할 수있어. 정규 표현식 (나의 마음에 드는 방법 나는 정직 경우)로 K,하지만 짧은 그리고 그것은이 일을 (또한 당신에게 다른 미래를 줄 수도 있습니다) : 나는 건너 뛸거야

String letterPattern = "^(?i)[a-z]$"; 
String vowelPattern = "^(?i)[aeoui]$"; 
String test = "A"; 

if(test.matches(letterPattern)) { 
    if(test.matches(vowelPattern)) { 
     System.out.println("This is a vowel!"); 
    } 
    else { 
     System.out.println("It's not ..."); 
    }   
} 
// you get the idea ... 
0

을 단일 문자를 읽을 수 있지만 당신이 아마 찾고있는 것은 다음과 같다 부분 :

if (!chr.isLetter()) { 
    // error 
} else if ("aeiou".contains(chr.toLowerCase()) { 
    // vowel 
} else { 
    // consonant 
} 

등 비 ASCII 문자, 로케일, 처리는 독자에게 연습으로 남아 있습니다.

+0

참고 : 내 머리 꼭대기에서 문자가 CharSequence로 간주되는지 여부는 알 수 없지만 그렇지 않은 경우 리더에게 운동으로 남아있게됩니다. –

관련 문제