문자열 자르기

반응형


구분자를 지정하여 하나 이상의 값을 구분하여 데이터를 배열에 집어넣고 그 값을 꺼내 사용한다.


쿼리를 날릴때 조건이 두 가지가 있을때 사용하였다.



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

+ Recent posts