지식메모/JAVA
-
java 문자열 구분자로 자르기2013.10.02
-
ObjectNode 와 JsonNode 차이?2013.09.06
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 차이?
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 태그 파싱하기
뭐가 뭔지 잘 모르겠지만 일단은 출력된다...
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 |