Java 문자열 바이트 체크 / 문자열 길이 체크 / string byte check
2016. 11. 11. 11:15ㆍlanguage/java
특정 문자열의 크기를 체크할 경우가 있다.
문자열에는 공백, 한글, 영문, 숫자, 특수문자 등 여러 문자들의 집합니다.
아래 함수는 문자열과 기준 바이트를 파라미터로 입력받고
문자열의 바이트수가 기준 바이트보다 크면 false, 작거나 같으면 true를 리턴한다.
리턴타입을 boolean 이 아닌 int 로 바꿔서 입력받은 문자열의 byte를 리턴하는 등 여러가지로 변형해서 사용할 수 있다.
문자열의 바이트를 계산하는 방법은
크게 영문, 한글, 특수문자(숫자, 공백 포함) 을 각각 영문1byte, 한글2byte, 특수문자1byte 로 구분해서
총 문자열의 byte 를 계산하는 소스이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 |
/**
* 바이트를 체크한다. 기준보다 크면 false, 작거나 같으면 true
*
* @param txt 체크할 text
* @param standardByte 기준 바이트 수
* @return
*/
public boolean byteCheck(String txt, int standardByte) {
if (TsUtil.empty(txt)) { return true; }
// 바이트 체크 (영문 1, 한글 2, 특문 1)
int en = 0;
int ko = 0;
int etc = 0;
char[] txtChar = txt.toCharArray();
for (int j = 0; j < txtChar.length; j++) {
if (txtChar[j] >= 'A' && txtChar[j] <= 'z') {
en++;
} else if (txtChar[j] >= '\uAC00' && txtChar[j] <= '\uD7A3') {
ko++;
ko++;
} else {
etc++;
}
}
int txtByte = en + ko + etc;
if (txtByte > standardByte) {
return false;
} else {
return true;
}
} |
cs |
16# : 입력받은 문자열을 케릭터 타입(char) 배열로 받는다.
17# : 케릭터 타입 배열을 한글자씩 루프를 돈다.
18# : 영문인지 체크해서 영문일 경우 en변수 1증가
20# : 한글인지 체크해서 한글일 경우 ko변수 2증가
23# : 그 이외는 특수문자(숫자, 공백 포함) 로 판단하고 1 증가
28# : 총 크기를 합산한다.
'language > java' 카테고리의 다른 글
Java를 이용하여 페이지 정보 가져오기(IP, Header, 페이지정보 등) (0) | 2016.12.29 |
---|---|
Java 랜덤 문자열 생성 / Random 클래스 / 랜덤 숫자 / 난수 (2) | 2016.12.02 |
Java | queryString 등 문자열 중에서 한글만 찾아 인코딩하기 / 유니코드 활용 (0) | 2016.11.24 |
JAVA Web Crawling (Scraping) / 웹페이지 크롤링 Apache HttpComponents (0) | 2016.11.21 |
JAVA Object 객체가 비어있는지 체크 (0) | 2016.11.11 |
java poi 엑셀 업로드 excel upload 심플한 방법 (2) | 2016.11.11 |
JAVA 강좌 / JAVA 복습 / JAVA 학습 / (0) | 2016.11.08 |
java poi 엑셀 업로드 excel upload | spring (0) | 2016.01.05 |
파일구조 / 디렉토리 구조 / 탐색기 / JAVA (0) | 2016.01.05 |
URLEncoder / URLDecoder / 한글깨짐 / 문자열 깨짐 / character set / java (0) | 2016.01.05 |