"01012341234" 형태로 저장된 전화번호를 "-" 구분자를 넣은 포맷으로 변경하고 싶을 때 정규식을 사용하면 편하게 개발이 가능하다.


1. 전화번호 포맷 변경

public static String makePhoneNumber(String phoneNumber) {

  String regEx = "(\\d{3})(\\d{3,4})(\\d{4})";

  

  if(!Pattern.matches(regEx, phoneNumber)) return null;

  

  return phoneNumber.replaceAll(regEx, "$1-$2-$3");

  

   }



2. 테스트

System.out.println(makePhoneNumber("01012341234"));

System.out.println(makePhoneNumber("0101231234"));


결과

010-1234-1234

010-123-1234



'java > util' 카테고리의 다른 글

[util] - 자바 문자열 압축/압축풀기  (0) 2011.11.14
[util] - 특정 디렉토리 파일 목록 출력하자.  (0) 2011.06.17
[InputStream] - String to InputStream  (1) 2010.10.13
[util] - byte to hex string  (0) 2010.09.07
[java] - replaceNull  (0) 2010.07.05
Posted by 짱가쟁이

문자열 압축

public static byte[] compress(String src) throws IOException {

byte[] dataByte = src.getBytes();

Deflater deflater = new Deflater();

deflater.setLevel(Deflater.BEST_COMPRESSION);

deflater.setInput(dataByte);

deflater.finish();

ByteArrayOutputStream bao = new ByteArrayOutputStream(dataByte.length);

byte[] buf = new byte[1024];

while(!deflater.finished()) {

int compByte = deflater.deflate(buf);

bao.write(buf, 0, compByte);

}

bao.close();

deflater.end();

return bao.toByteArray();

}



문자열 압축 풀기

public static byte[] decompress(byte[] data) throws IOException, DataFormatException {

Inflater inflater = new Inflater();

inflater.setInput(data);

ByteArrayOutputStream bao = new ByteArrayOutputStream();

byte[] buf = new byte[1024];

while(!inflater.finished()) {

int compByte = inflater.inflate(buf);

bao.write(buf, 0, compByte);

}

bao.close();

inflater.end();


return bao.toByteArray();

}





'java > util' 카테고리의 다른 글

[정규식] - 핸드폰 번호 포맷 변경  (0) 2013.01.02
[util] - 특정 디렉토리 파일 목록 출력하자.  (0) 2011.06.17
[InputStream] - String to InputStream  (1) 2010.10.13
[util] - byte to hex string  (0) 2010.09.07
[java] - replaceNull  (0) 2010.07.05
Posted by 짱가쟁이
산출물 작업 시 파일 정의서를 작성할 때 유용하게 사용할 수 있다. ㅋ

import java.io.File;

public class Test {

    public static void main(String[] args) {
        File dir = new File("D:\\test");
       
        File[] fileList = dir.listFiles();
       
        new Test().printFiles(fileList);
    } 

   public String getFileExtension(String fileName) {
        return fileName.substring(fileName.lastIndexOf(".")+1, fileName.length());
    }
   
    public void printFiles(File[] fileList){
       
        for(int i = 0;i<fileList.length;i++) {
            if(fileList[i].isDirectory()) {
                printFiles(fileList[i].listFiles());
            } else {
                if(getFileExtension(fileList[i].getName()).equals("java")
                        || getFileExtension(fileList[i].getName()).equals("xml")
                        || getFileExtension(fileList[i].getName()).equals("properties") ) {
                    System.out.println(fileList[i].getPath());
                }
            }       
        }
    }
}

'java > util' 카테고리의 다른 글

[정규식] - 핸드폰 번호 포맷 변경  (0) 2013.01.02
[util] - 자바 문자열 압축/압축풀기  (0) 2011.11.14
[InputStream] - String to InputStream  (1) 2010.10.13
[util] - byte to hex string  (0) 2010.09.07
[java] - replaceNull  (0) 2010.07.05
Posted by 짱가쟁이

String tmp = "<Coolbar><aa>한글</aa><bb>bb</bb></Coolbar>";
InputStream bai = new ByteArrayInputStream(tmp.toString().getBytes("UTF-8"));

'java > util' 카테고리의 다른 글

[util] - 자바 문자열 압축/압축풀기  (0) 2011.11.14
[util] - 특정 디렉토리 파일 목록 출력하자.  (0) 2011.06.17
[util] - byte to hex string  (0) 2010.09.07
[java] - replaceNull  (0) 2010.07.05
[java] - File readLine  (2) 2010.07.01
Posted by 짱가쟁이
   private static final char[] hexDigits = {
        '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
    };

   public static String toString(byte[] ba, int offset, int length) {
        char[] buf = new char[length * 2];
        int j = 0;
        int k;

        for (int i = offset; i < offset + length; i++) {
            k = ba[i];
            buf[j++] = hexDigits[(k >>> 4) & 0x0F];
            buf[j++] = hexDigits[ k        & 0x0F];
        }
        return new String(buf);
    }

    public static String toString(byte[] ba) {
        return toString(ba, 0, ba.length);
    }

바이트 배열을 헥사 문자열로 변환하는 유틸

'java > util' 카테고리의 다른 글

[util] - 특정 디렉토리 파일 목록 출력하자.  (0) 2011.06.17
[InputStream] - String to InputStream  (1) 2010.10.13
[java] - replaceNull  (0) 2010.07.05
[java] - File readLine  (2) 2010.07.01
[java] - File read  (0) 2010.07.01
Posted by 짱가쟁이
2010. 7. 5. 14:25
흠. 가끔 Object를 파라미터로 넘길 때 각 필드값에 Null 이 들어가면 안될 경우가 생간다. 매번 object.setField("") 이런식으로 값을 초기화 시키기 귀찮으면 java refection 기능을 응용해서 작업해도 좋을 듯 싶다.

replaceNull()
- object의 선언된 필드만 가지고 와서 Null 값을 체크한다. 값에 null 이 있으면 "" 로 초기화 한다.
public static void replaceNull(Object obj) throws Exception {
        try {
            Class dymClass      = obj.getClass();
            Field[] fields            = dymClass.getDeclaredFields();
           
            for(int i = 0;i<fields.length;i++) {
                String methodName = "get" + fields[i].getName().substring(0, 1).toUpperCase() + fields[i].getName().substring(1, fields[i].getName().length());               
                Method method       = obj.getClass().getMethod(methodName, null);
                String value       = (String)(method.invoke(obj, null) + "");
                if("null".equals(value)) {
                    value = "";
                    String setMethodName = "set" + fields[i].getName().substring(0, 1).toUpperCase() + fields[i].getName().substring(1, fields[i].getName().length());
                    Method setMethod       = obj.getClass().getMethod(setMethodName, new Class[]{String.class});
                    setMethod.invoke(obj, new Object[]{value});
                }
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            throw e;
        }       
    }


'java > util' 카테고리의 다른 글

[InputStream] - String to InputStream  (1) 2010.10.13
[util] - byte to hex string  (0) 2010.09.07
[java] - File readLine  (2) 2010.07.01
[java] - File read  (0) 2010.07.01
[java] - byte array to image  (0) 2010.06.30
Posted by 짱가쟁이
2010. 7. 1. 13:31
파일에서 한줄씩 읽어서 String array 로 반환하자.
/**
 * 파일 한줄씩 읽기
 * 
 * @param file
 * @return
 * @throws IOException
 */
public static String[] readLine(File file) throws IOException {

    BufferedReader reader     = null;
    String[] result         = null;
    
    try {
        reader     = new BufferedReader(new FileReader(file));
        List<String> list         = new ArrayList<String>();

        // while(reader.read() != -1) { 첫번째 케릭터를 읽고 무시하니 line을 제대로 읽지 못함.
        while(reader.ready()) { // 변경
            String content = reader.readLine();
            
            if(content != null && !"".equals(content.trim())) {
                list.add(content);
            }
        }
        
        if(list.size() > 0) {
            result = new String[list.size()];
            for(int i = 0;i<list.size();i++) {
                result[i] = list.get(i);
            }
        }
    } catch(IOException ioe) {
        throw ioe;
    } finally {
        if(reader != null) reader.close();
    }

    return result;
}

위에 저넘을 사용하려다 문제가 발생함.. 파일을 읽을 때 얖에 2byte 빼고 데이터를 가져오더라.. 이유는 찾아보기 귀찮고 일은 바쁘고.. 그냥 새로 맹갔다.
댓글 남겨주신 GG님의 의견을 반영했습니다. 도움 감솨드립니다 ^^


/**
     * 파일 한줄씩 읽기
     *
     * @param file
     * @return
     * @throws IOException
     */
    public static String[] readLine1(File file) throws IOException {

        FileInputStream fstream = null;
        DataInputStream in        = null;
        BufferedReader br         = null;
       
        String[] result               = null;
       
        try {
            fstream = new FileInputStream(file);
            in = new DataInputStream(fstream);
            br = new BufferedReader(new InputStreamReader(in));
           
            List<String> list         = new ArrayList<String>();
           
            String strLine;
           
            while ((strLine = br.readLine()) != null)   {
                if(strLine != null && !"".equals(strLine.trim())) {
                    list.add(strLine);
                }
            }

            if(list.size() > 0) {
                result = new String[list.size()];
                for(int i = 0;i<list.size();i++) {
                    result[i] = list.get(i);
                }
            }
                       
        } catch(IOException ioe) {
            throw ioe;
        } finally {
            if(br != null) br.close();
            if(in != null) in.close();
            if(fstream != null) fstream.close();
        }

        return result;
    }

고민하기 싫은데. 대체 뭔 차이여.. 누가 설명좀 해주면 안될까?? 쩌ㅃ~



'java > util' 카테고리의 다른 글

[util] - byte to hex string  (0) 2010.09.07
[java] - replaceNull  (0) 2010.07.05
[java] - File read  (0) 2010.07.01
[java] - byte array to image  (0) 2010.06.30
[java] - 소수점 자르기 (duble type)  (0) 2010.06.30
Posted by 짱가쟁이
2010. 7. 1. 13:05
요넘 파일 가지고 놀때는 항상 API를 뒤적이더라.. 다른 넘들은 재사용을 잘하면서 요넘들은 뭐가 문제일까?

파일 전체를 문자열로 읽는 함수
/**
     * 파일 전체 읽기
     *
     * @param file
     * @return
     * @throws IOException
     */
    public static String read(File file) throws IOException {
       
        FileInputStream fis     = null;
        byte[]             buffer     = null;
       
        try {
            fis     = new FileInputStream(file);
            buffer     = new byte[fis.available()];       
            fis.read(buffer, 0, fis.available());
        } catch(IOException e) {
            throw e;
        } finally {
            if(fis != null) fis.close();
        }
       
        return new String(buffer);
    }

'java > util' 카테고리의 다른 글

[java] - replaceNull  (0) 2010.07.05
[java] - File readLine  (2) 2010.07.01
[java] - byte array to image  (0) 2010.06.30
[java] - 소수점 자르기 (duble type)  (0) 2010.06.30
[java] - base54 String decode  (0) 2010.06.30
Posted by 짱가쟁이
base64 인코딩된 데이터를 바이트로 디코딩후 이미지로 변환할 때 사용함.

Code
/**
     * byte array to image
     *
     * @param path      이미지 경로
     * @param buffer    이미지 데이터
     * @throws FileNotFoundException
     * @throws IOException
     */
    public static void byte2Image(String path, byte[] buffer) throws FileNotFoundException, IOException {
        FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));
        imageOutput.write(buffer, 0, buffer.length);
        imageOutput.close();
    }

'java > util' 카테고리의 다른 글

[java] - File readLine  (2) 2010.07.01
[java] - File read  (0) 2010.07.01
[java] - 소수점 자르기 (duble type)  (0) 2010.06.30
[java] - base54 String decode  (0) 2010.06.30
[java] - 타입 변환  (0) 2010.06.30
Posted by 짱가쟁이
가끔 실수형을 계산하면 터무니 없이 길게 나오거나.. 몇번째 자리부터 근사값을 구하고 싶을 때 사용하면 됨.

code
/**
    * 적당한 길이로 자른다.
    *
    * @param size   
    * @param value
    * @return
    */
   public static String longDouble2String(int size, double value) {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(size);
        nf.setGroupingUsed(false);
        return nf.format(value);
    }

Test
System.out.println(StringUtil.longDouble2String(2, 12.123456789));

Result
12.12

'java > util' 카테고리의 다른 글

[java] - File read  (0) 2010.07.01
[java] - byte array to image  (0) 2010.06.30
[java] - base54 String decode  (0) 2010.06.30
[java] - 타입 변환  (0) 2010.06.30
[java] - 외부 프로그램 실행하기..  (0) 2010.06.29
Posted by 짱가쟁이
이전버튼 1 2 3 4 이전버튼