2011-09-17 4 views
0

사용자가 문자열을 입력해야하는 프로그램을 작성해야합니다. 첫 번째와 두 번째 문자는 대문자 여야하며 나머지는 숫자 여야합니다. 사용자가 올바르게 입력하지 않으면, 프로그램은 입력 오류에 대해 알려주는 메신저를 생성합니다.Assert 사용자 입력은 대문자입니다.

나는 사용자 입력의 모든 단일 사인을 스캔하고 실수를 찾는 루프를 작성하여이 작업을 수행 할 수 있음을 알고 있습니다.

그래서 내가 정의한 말 :

문자 기호;

내가 쓰는 것보다

내가 더 쉬운 방법으로 대문자의 스캔을 할 수있는 수 charAt (루프 번호)와 루프를 사용는 말 : 모든 문자에 대한

if (sign != 'A' || sign != 'B' || sign !='C' || sign != 'D' . . . .) 

? 이것은 프로그램을 작성하는 지루한 방법입니다. 따라서 누군가 입력을 주장하는 단축키/메소드를 대문자로 알면 크게 감사하겠습니다! 이 같은

+1

사용하는 언어에 따라 다릅니다. – Juanma

+0

오. 그것을 언급하지 않아서 미안해. 자바를 사용하고 있습니다. – Kristian

+0

자바 태그가 추가되었습니다. :) – Jeff

답변

1

뭔가 : 기호는 대문자 인 경우

if(sign >= 'A' && sign <= 'Z') 

마찬가지입니다.

+0

고마워요. 나는 이것을 시도 할 것이다. – Kristian

+1

+1 - 순수 연산자 : – Jeff

0
if Sign = Uppercase(Sign) then 
    DoSomethingIfItIsUppercase; 

// Say Sign was "j", the Uppercase(); will make it "J", and then they dont match. 
// But if Sign was "J", Uppercase(); would still make it "J", and they would match. 

그래도 될까요?

주 : 이것은 당신이 사용하고있는 언어를 지정하지 않았으로, 델파이이며, 테스트되지 않은 자바 예 (의 여기

)) :!

char Char1 = yourinput.charAt(0); 
    char Char2 = yourinput.charAt(1); 
    // Those were the first to characters 
    // Now check if they are uppercase 
    if(Char1==Character.toUpperCase(Char1) && Char2==Character.toUpperCase(Char2)) 
    { 
    // Do something if both are uppercase 
    } 
+0

고맙습니다. 나는 이것도 시도 할 것이다! – Kristian

+0

나는 Patrik & I의 제안이 효과가 있다고 믿는다. - 어느 것이 든 당신에게 가장 어울리는 것을 골라라! Patrik의 대답은 연산자 만 사용하기 때문에, 나는 그의 대답이 가장 좋을 것이라고 말하고 싶습니다. :) – Jeff

1

당신은 전체에 regular expression을 사용할 수 있습니다 문자별로 문자를 테스트하는 대신 문자열을 반환합니다. 이 정규식이 무엇

if (!userString.matches("^[A-Z]{2}\d+$") { 
    // Generate a warning... 
} 

는 문자열의 끝 적어도 하나의 숫자 다음에 두 개의 대문자,로 문자열의 시작을 강제한다.

제안한 것처럼 루프 코드를 작성하려면 Character.isUppercase(char c)method in the Java libraries을 사용하여 문자가 대문자인지 테스트하십시오. 마찬가지로 Character.isDigit(char c)을 사용하여 숫자를 테스트 할 수 있습니다.

2
ch=(char) inputstream.read(); 
if(Character.isUpperCase(ch)) { 
    /* DO SOMETHING */ 
} 
else { 
    /* DO SOMETHING ELSE*/ 
} 
관련 문제