java 문자열 구분자로 자르기
구분자를 지정하여 하나 이상의 값을 구분하여 데이터를 배열에 집어넣고 그 값을 꺼내 사용한다.
쿼리를 날릴때 조건이 두 가지가 있을때 사용하였다.
public static splitFunction(String ktype){ //ktype을 받는다. String ktypeWhere = ""; //ktypeWhere는 공백상태 String[] array = ktype.split(","); //콤마 구분자로 배열에 ktype저장 for(String cha : array){ //배열 갯수만큼 포문이 돌아간다. /* ktypeWhere가 비어있다면 ktypeWhere 에 cha 값을 넣고 비어있지 않다면 * 기존 값에 ,를 추가하여 cha를 덧붙인다. */ ktypeWhere += (ktypeWhere.equals("")) ? "'"+cha+"'" : ",'"+cha+"'"; } }
주석 설명대로 처음에 String ktype을 받는다.
만약 사과를 받았다면 "사과" 값이 하나 들어가지만
사과 포도를 받았다면 "사과,포도" 라고 값이 들어간다.
※※※※※※※※※
, 콤마로 구분자를 주었다면 입력할때도,콤마를 꼭 넣어주어야 한다.
그냥 "사과 포도" 이렇게 써도 자동으로 콤마가 들어가지않는다.
"사과,포도"이래야 구분이 가능하다.
※※※※※※※※※※※※※
그러면
String[] array = ktype.split(",");
여기서 split 이라는 함수가 , 를 구분자로 인식해서
String[] array라는 배열에 0번째부터 사과 1번째에는 포도라고 저장한다.
그 다음 포문을 돌리는데 조건문이
for(String cha : array) 이므로
array 갯수만큼 포문을 돈다.
현재 사과 포도 2개가 있으므로 2번 돌게 된다.
그럼 삼항연산자를 이용해서
ktypeWhere += (ktypeWhere.equals("")) ? "'"+cha+"'" : ",'"+cha+"'";값을 넣어준다.
처음에 String ktypeWhere = ""; 이라고 선언했으니 비어있는 상태다.
ktypeWhere.equals("") ? "'"+cha+"'" : ",'"+cha+"'" ; ktypeWhere가 값이 ""이므로 비어있다면 ? cha 값을 ktypeWhere에 넣어주고 : 안 비어있다면 ,를 붙여 cha값을 추가한다.; |
삼항연산자는
조건문 ? 만족할때 실행 : 만족못할때 실행
이런 형식이다.
만약 if문으로 한다면
if(ktypeWhere.equals("")){ ktypeWhere = cha; }else{ ktypeWhere += ","+cha; }
이렇게 될 것이다.(맞나?)
그럼 사과 포도 데이터가 2개 있으니 처음 포문을 돌때는 ktypeWhere가 값이 비어있으니
ktypeWhere = "사과" 이다.
두번째 포문을 돌때는 이미 사과가 들어가 있으므로 ,를 이용해서 붙인다.
그래서 ktypeWhere = "사과,포도"이다.
그리고 쿼리에 넣을때는 ' '표시를 해줘야 하기 때문에 "'"+ 이 구문을 넣어주었다.
쿼리 쓸 일이 아니라면 안 넣어줘도 된다.
그런 다음 ktypeWhere 값을 갖다 쓰면된다.
'지식메모 > JAVA' 카테고리의 다른 글
숫자 천단위 콤마 입력하기 (0) | 2014.09.25 |
---|---|
Json의 이해 (0) | 2013.11.05 |
대문자 소문자 서로 변환하기 (0) | 2013.10.08 |
ObjectNode 와 JsonNode 차이? (0) | 2013.09.06 |
mp3 ID3 v2 태그 파싱하기 (3) | 2013.08.27 |