2012-03-29 2 views
0

내 데이터베이스에 삽입하기 전에 설명 된 패턴과 대조하여 EditText의 사용자 입력을 검사해야합니다. 일치하지 않는 경우 사용자에게 오류 메시지가 나타납니다. 이보다 더 쉬운 방법이 있습니까?데이터베이스에 삽입하기 전에 텍스트가 3 대문자 alphas 다음에 5 자리 숫자로 표시되는지 확인하십시오.

public boolean myCheckMethod() 
{ 
String s = myEditText.getText.toString(); 
if(s.length!=8) 
    return false; 
for(int i=0; i < 8; i++){ 
    if(i < 3) 
    if(!(Character.isLetter(s.charAt(i)) && Character.isUpperCase(s.charAt(i))) 
    return false; 
    if(i > 3) 
    if(!Character.isDigit(s.charAt(i))) 
    return false; 
} 

return true; 
} 

이 작업을 수행하는 더 좋은 방법이 있어야합니다 !!

답변

0

있습니다 :

if(myCheckMethod()) 
{ 
    //code to add to db here 
} 
else 
    Toast 
    .makeText(this, "User error",Toast.LENGTH_LONG) 
    .show(); 
+0

나는 그것을 시도하고 알려 드리겠습니다 –

+0

그것은 일했습니다! 그것은 심지어 8 문자가 아닌 것을 잡습니다! 훌륭한; 그 방법과 일치하는 삶 :-) –

+0

도와 드리겠습니다 : ^] – AnthonyW

0

귀하의 접근 방식은 불합리되지 않습니다 : 당신이 당신의 데이터베이스에 추가 할 때

if(s.matches("[A-Z]{3}[0-9]{5}")) 
    return true; 
return false; 

그런 다음 if 문에이 방법을 사용합니다. 정규 표현식으로 테스트 할 수도 있습니다. 어쩌면 [A-Z]{3}[0-9]{5}과 같은 것일 수 있습니다. 비영어권 언어에서 비정상적인 문자에 문제가있을 수 있습니다. 귀하의 경우에 중요한지 확실하지 않습니다.

0

갈 길이 갈 것입니다. 대답 this 답변을보십시오. 정확하지는 않지만 좋은 설명입니다.

This 도움이 될 것입니다

[AZ] {3} [0-9] {4} 하나 개의 가능한 패턴이지만 모든 것을 정규식으로, 다른 사람이 더 나은 패턴으로 대답한다)

하지만 당신은 아이디어를 얻을 ...

건배

PS 속임수 미안 해요, 내가 게시물을 누르면 그때까지, 나는 힙 아래로 길을 갔다 ...

관련 문제