##################################### # TokenÀ» ±âÁØÀ¸·Î ¹®ÀÚ¿­ ÀÚ¸£±â # ##################################### ÀÛ¼ºÀÚ : ÀåÇüÈ­(hhjang97@venus.uos.ac.kr) ÀÛ¼ºÀÏ : 2004. 10. 20 ¼öÁ¤ÀÏ : 2005. 07. 27 : JDK 1.4ÀÇ split() ÀÌ¿ë¹ý Ãß°¡ ¿øº» : ¼³¸í : token À» ±âÁØÀ¸·Î ¹®ÀÚ¿­À» ºÐ¸®ÇÏ¿© Ãâ·ÂÇÑ´Ù. ################################# ################################# ################################# ################################# # JDK 1.4 ¿¡¼­ split() ÀÌ¿ë ################################# // JDK 1.4 ÀÇ split mehtod¸¦ Å×½ºÆ® ÇÑ´Ù. public void splitTest(String msg, String regex) { System.out.println("msg :" + msg); System.out.println("regex :" + regex); String[] reArray = msg.split(regex); for (int i=0, max = reArray.length; i<max; i++) { System.out.println("\ti :" + reArray[i]); } } //=========== JDK 1.4 split test String msg1 = "aa,bb,cc"; t.splitTest(msg1, ","); String msg2 = "aa|bb|cc"; t.splitTest(msg2, "[|]"); String msg3 = "aa^bb^cc"; t.splitTest(msg3, "\\^"); String msg4 = "aa.bb.cc"; t.splitTest(msg4, "\\."); ################################# # SplitString Class ################################# // FileName : SplitString.java public class SplitString { /** * ¹®ÀÚ¿­À» token À» ±âÁØÀ¸·Î ÀÚ¸¥´Ù. * jdk 1.4 ¿¡¼­´Â split() À» »ç¿ëÇÏ¸é µÈ´Ù. * @param str * @param token * @return string[] */ public String[] splitString(String str, String token) { int t=0; int now=0; int next=0; while ( (next = str.indexOf(token,now)) > 0 ) { t= t+1; // xy = newStr.substring(now, next); now = next + 1; } String[] newStr = new String[t+1]; t = now = next = 0; while ( (next = str.indexOf(token,now)) > 0 ) { newStr[t] = str.substring(now, next).trim(); now = next + 1; t= t+1; } if(now == 0) { // ¾ø´Â°æ¿ì newStr[0] = str; } else { // ¸¶Áö¸· Ãß°¡ newStr[t] = str.substring(now).trim(); } // System.out.println("now : " + now); // System.out.println("next : " + next); // System.out.println("strlen : " + str.length()); return newStr; } public void splitCoordinates(String str) { int t=0; int now=0; int next=0; String token = " "; String newStr = new StringBuffer(str.trim()).append(token).toString(); String xy = null; while ( (next = newStr.indexOf(token,now)) > 0 ) { t= t+1; xy = newStr.substring(now, next); System.out.println("now-->"+now); System.out.println("["+t+"]"+newStr.indexOf(token,now)); System.out.println("Resutl -->"+xy); now = next + 1; } } public static void main(String[] args) { System.out.println("¹®ÀÚ¿­ ÀÚ¸£´Â ¿¹Á¦ "); SplitString split = new SplitString(); String msg = "0,0 20,50 30,540 1,0.1"; split.splitCoordinates(msg); } } ################################# # replace ó¸® ################################# private String replace(String str, String from, String to){ String newStr = null; StringTokenizer token = new StringTokenizer(str, from); while(token.hasMoreTokens()){ if(newStr == null) newStr = token.nextToken(); else newStr = newStr+to+token.nextToken(); } return newStr; }