지식메모/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
반응형

 

 

 

ObjectNode 와 JsonNode의 차이가 뭔지 몰랐는데 이런 차이라고 한다.

 

 

Json으로 나타난 정보에서

 

[ ]

표시로 시작되는 건 배열이기 때문에 Arraynode 이며

 

{ }

표시로 시작하는 건 Json 값이기 때문에 JsonNode 이다

 

 

그런데 JsonNode는 값을 불러올 수는 있지만 넣을 수는 없기 때문에

 

값을 넣기 위해서는 ObjectNode를 사용한다.

 

ObjectNode는 값을 불러오고 넣을 수도 있다.

 

 

요약하면

 

JsonNode 는 값을 읽을 수만 있고 ObjectNode는 값을 읽고 쓸 수 있다.

 

Json 사용법 링크

http://yonoo88.tistory.com/322

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'지식메모 > JAVA' 카테고리의 다른 글

숫자 천단위 콤마 입력하기  (0) 2014.09.25
Json의 이해  (0) 2013.11.05
대문자 소문자 서로 변환하기  (0) 2013.10.08
java 문자열 구분자로 자르기  (0) 2013.10.02
mp3 ID3 v2 태그 파싱하기  (3) 2013.08.27

mp3 ID3 v2 태그 파싱하기

2013. 8. 27. 15:49
반응형

뭐가 뭔지 잘 모르겠지만 일단은 출력된다...

http://www.jthink.net/jaudiotagger/

여기서 왼쪽 하단에 downloads 탭에 Maven Release 에서 

가장 최신으로 보이는 2.2.0-SNAPSHOT 으로 들어간다음

jaudiotagger-2.2.0-20130321.142353-1.jar

jar 파일을 다운 받아 프로젝트 속성에서 라이브러리를 추가해주었다.


jaudiotagger-2.2.0-20130321.142353-1.jar


자세한 소스분석은 모르겠다...


import java.io.File;

import org.jaudiotagger.audio.AudioFileIO;
import org.jaudiotagger.audio.mp3.MP3File;
import org.jaudiotagger.tag.FieldKey;
import org.jaudiotagger.tag.Tag;
import org.jaudiotagger.tag.id3.AbstractID3v2Tag;
public class test {
 public static void main(String[] args) throws Exception {
		String decoding = "ISO-8859-1";
		String encoding = "EUC-KR";
		File file = new File("/home/jeong/걸스데이-말해줘요.mp3");
		MP3File mp3 = (MP3File) AudioFileIO.read(file);
//  ID3v24Tag tag24 = mp3.getID3v2TagAsv24();
		AbstractID3v2Tag tag2 = mp3.getID3v2Tag();

		Tag tag = mp3.getTag();
		String title = tag.getFirst(FieldKey.TITLE);
		String artist = tag.getFirst(FieldKey.ARTIST);
		String album = tag.getFirst(FieldKey.ALBUM);
		String year = tag.getFirst(FieldKey.YEAR);
		String genre = tag.getFirst(FieldKey.GENRE);

		System.out.println("Tag : " + tag2);
		System.out.println("Song Name : " + title);
		System.out.println("Artist : " + artist);
		System.out.println("Album : " + album);
		System.out.println("Year : " + year);
		System.out.println("Genre : " + genre);
	}
}


출력결과

Tag : Tag content:

TIT2:Text="말해줘요"; 

TPE1:Text="걸스데이"; 

TALB:Text="GIRL`S DAY Party #6 [Digital Single]"; 

TCON:Text="아이돌"; 

TRCK:Text="1"; 

TYER:Text="2013"; 

TPE2:Text="걸스데이"; 

USLT:Language="English"; Lyrics="Intro>

우리 둘이 함께 해요 나를 혼자 두진 마

이 밤이 깊어져만 가 빨리 고백 

(민아)

안해? 안해? 안할꺼야?


A>

(소진)

You! 넌 내 맘을 너무 몰라 

Oh You! 빛나는 저 파도같아

You! 왜 자꾸 애태우는지 (아이야아 아아 이 야이야)


A`

(혜리)

(하나 하나 하나 둘 셋 넷!) 하면 솔직히 내게 말해줘 

(니가 먼저 말해주면 안돼) Oh 부끄러워 부끄럽단 말야 


B>

(민아)

시원한 바람 아름다운 해변 이곳엔 너와 단 둘이 

모든 걱정들은 저기 저 바다에 던져 버릴래 


C> 

(다같이)

지금 말해줘요 말해줘요 말해줘요  

(소진)

사실은 나를 좋아한다고 우릴 위한 저 바닷가로  빨리 떠나요 


(다같이)

지금 말해줘요 말해줘요 말해줘요 

(민아)

난 너 하나면 충분해 약속해 손가락 걸고 말해줘 말해줘요 말해줘 말해줘요 



Rap>

(유라)

다다른 여자보단 내가 나아 하나보단 둘이 

아침부터 저녁까지 우리 둘이 (나나나나) 

이 노래를 불러 Say 1!2!3!4!



(민아) 

야! 안 따라 부르냐?


B>

(혜리)

뜨거운 태양 부서지는 파도 이곳엔 너와 단 둘이 

(민아)

모든 걱정들은 저기 저 하늘에 던져 버릴래 


C> 

(다같이)

지금 말해줘요 말해줘요 말해줘요 

(민아)

난 너하나면 충분해 약속해 손가락 걸고 말해줘 말해줘요 말해줘 말해줘요 


Bridge>

(유라) 

오늘밤이 다 가기 전에 고백해줄래요 

(소진)

사랑해 사랑해 달콤한 입술로

(민아)

아침을 깨워줄 그댄 너란 걸  


C> 

(소진)

지금 말해줘요 나 사랑한다는 그 말 아끼지 말아요 두 손을 꼭 붙잡고 멀리 떠나요



(다같이-소진 애드립)

지금 말해줘요 말해줘요 말해줘요

(민아)

너와 이 여름안에서 영원히 함께 할래요 말해줘 말해줘요 말해줘 말해줘요


"; 

TLAN:Text="kor"; 

TPOS:Text="1"; 

APIC:MIMEType="image/jpeg"; PictureData="57966 bytes"; 


Song Name : 말해줘요

Artist : 걸스데이

Album : GIRL`S DAY Party #6 [Digital Single]

Year : 2013

Genre : 아이돌









반응형

'지식메모 > JAVA' 카테고리의 다른 글

숫자 천단위 콤마 입력하기  (0) 2014.09.25
Json의 이해  (0) 2013.11.05
대문자 소문자 서로 변환하기  (0) 2013.10.08
java 문자열 구분자로 자르기  (0) 2013.10.02
ObjectNode 와 JsonNode 차이?  (0) 2013.09.06

+ Recent posts