CODE CAVE

[안드로이드 / 자바] 공백 체크 관련 메서드 본문

Android

[안드로이드 / 자바] 공백 체크 관련 메서드

코드케이브 2016. 6. 6. 16:11


안드로이드 앱을 개발하다 보면 꼭 하게 되있는 문자열 체크..


공백과 관련된 문자열 체크 함수들을 몇개 작성 해봤습니다.


생각보다 많은 내용은 없구요, 그냥 글자 길이와 조건문 등을 활용해서 만드는 거라서 


조금만 천천히 봐보시면 이해 + 응용도 되실거라고 생각 됩니다. 


급하게 쓰실 분들은 복붙 해서 일단 그냥 바로 쓰시고 나중에 한번 쭉 훑어보시는 것도 ㅎㅎ

public int checkStringLength(String str){  //순수 문자열 10글자 미만
    int cnt = 0;
    for(int i = 0 ; i < str.length() ; i++)
    {
        if(str.charAt(i) != ' '){
            cnt++;
        }
    }
    return cnt;
}

//내용 전체가 공백일 때
public boolean spaceCheck(String spaceCheck)
{
    boolean isChar = false;
    for(int i = 0 ; i < spaceCheck.length() ; i++)
    {
        if(spaceCheck.charAt(i) != ' '){
            isChar = true;
        }
    }
    return isChar;
}
//전체가 한 종류의 글자
//공백과 한종류의 글자 혼합
public boolean onlyOneCharCheck(String str){
    boolean is = false;
    char tmpString = str.charAt(0);
    for(int i = 0 ; i < str.length()-1 ; i++)
    {
        if(i > 0 && str.charAt(i) == ' ') tmpString = str.charAt(i-1);
        if(str.charAt(i) != str.charAt(i+1) && str.charAt(i) != ' ' && str.charAt(i+1) != ' '){
            is = true;
        } else if(tmpString != str.charAt(i+1) && str.charAt(i+1) != ' '){
            is = true;
        }
    }
    return is;
}

//공백이 글자수보다 많은 경우
public boolean spaceAndOneCharCheck(String str){
    boolean is = false;
    int spaceCount, charCount;
    spaceCount = charCount = 0;
    for(int i = 0; i < str.length(); i++){
        if(str.charAt(i) == ' ') {
            spaceCount++;
        } else {
            charCount++;
        }
    }
    if(spaceCount < charCount) {
        is = true;
    }

    return is;
}


공백을 제외한 글자수 체크는 글자 카운트를 리턴해주고, 나머지는 boolean 값으로 true/false 값을 리턴해줍니다.


이 외에 다른 체크 함수가 필요하다면 저것들을 분석해서 응용하시면 될 것이라고 생각되네요~


아래는 위 메서드를 모두 적용한 문자열 체크 조건문 입니다.


공백 제외 문자 수 10미만 이거나 

내용 자체가 다 공백일 경우나 ("   ")

한글자만 반복되거나 (예를들어 "ㅇㅇㅇㅇㅇ")

한글자와 공백시 섞여서 반복 될 때  (예를들어 "아 아 아 아" 이런식으로)

공백이 글자보다 더 많을 때 (예를들어 "   아    아        ")


if문 안의 내용을 수행하게 됩니다.

if(checkStringLength(str) < 10 || !spaceCheck(str) || !onlyOneCharCheck(str) || !spaceAndOneCharCheck(str)){
     //공백을 제외한 문자수가 10미만, 내용전체가 공백일 때, 내용 중 한글자만 반복될 때, 내용 중 한글자와 공백이 섞어서 반복 될 때, 내용 중 공백이 글자보다 더 많을때
     //이 중 하나의 조건이라도 만족하면 if문 안으로 들어가게됩니다.
     //내용을 성실하게 입력하라는 메시지 등 출력
}


만약 또 다른 추가 검사 조건이 있으시다면 앞서 보여드린 방법대로 검사 기능을 수행하는 메서드를 만들고, if문 안에다가 OR문으로 하나 더 추가하면 되겠죠?





그럼 모두들 즐코딩 하시고..


도움이 되셨다면 아래 하트 뿅..