2016년 5월 30일 월요일

Java 문자열 Format String 쓰는 방법

오늘 포스팅 할 내용은 Java Format String 에서 문자열 Format String 쓰는법입니다.

간단한 예로 10 이라는 값을 10자리로 앞에 비어있는 곳은 0으로 패딩하는법을 설명 드리겠습니다.

<예>
 // String 으로 format 을 활용하는 방법은 여러가지가 있으나 간단한 방법으로 접근 한다.
String strPaddingNum;

 strPaddingNum = String.format("%010d", 10);

 위와 같이 쓰면 결과는 $strPaddingNum 에  "0000000010" 와 같은 값이 들어 가게 됩니다.

 기본적은 프로그래밍 서적에 보시면 printf 에 매칭 되는 타입은 나와 있는데

 기본 타입 만 나열하겠습니다.

 %d => int, long 타입.
 %s => 문자열 타입
 %f => float, double
 %c => char
 %x => 16진수 소문자 형태로 출력.

Objective-C 문자열 Format String 쓰는 방법

오늘 포스팅 할 내용은 Objective-C Format String 에서 문자열 Format String 쓰는법입니다.

Objective C 도 C언어 방식으로 처리를 할수 있습니다 관련 내용은 제가 일전에 올려 놓은것을 확인하시고요
http://ansur.blogspot.kr/2015/10/cc-format-string.html

오늘은 CoCoa Frame 에서 제공하는 NSString 기준으로 처리 방법을 설명하겠습니다.

간단한 예로 10 이라는 값을 10자리로 앞에 비어있는 곳은 0으로 패딩하는법을 설명 드리겠습니다.

<예>
 // string 으로 format 을 활용하는 방법은 여러가지가 있으나 간단한 방법으로 접근 한다.
 NSString* strPaddingNum;

 strPaddingNum = [NSString stringWithFormat:@"%010d", 10];

 위와 같이 쓰면 결과는 $strPaddingNum 에  "0000000010" 와 같은 값이 들어 가게 됩니다.

 기본적은 프로그래밍 서적에 보시면 printf 에 매칭 되는 타입은 나와 있는데

 기본 타입과 Objective-C 에서 추가적인것과 틀린것들을 나열하겠습니다.

 %d => int 타입.
 %ld => long 타입.
 %s => 문자열 타입 (기본적인 문자열 char*)
 %@ => Objective-C 에서 관리되는 문자열
 %f => float, double
 %c => char
 %x => 16진수 소문자 형태로 출력.

2016년 5월 3일 화요일

Double, Float 지수e 표현을 일반 숫자표현으로 처리 하는 방법.

서버와 데이터 통신을 하다 보면 float 형 또는 double 형 데이터를 Byte Array 로 받아서 해당 형으로 변환 시켜야 할때가 있다.

이때 숫자로 표현 하고자 할때 아래와 같은 문제가 발생한다.

<원데이터>
102571293.000000
<ByteArray 받은것 double 변환후 스트링 표현하면 아래와 같이>
1.02571293E8

위와 같이 실수가 지수e 표현 되는것을 알수 있다.

위와 같이 표현을 필요도 하지만 일반적인곳에서는 일반적인 숫자로 표현 하기를 원하기 때문에 처리 하려면
아래와 같이 하면 일반적인 숫자로 표현이 가능하다.

DecimalFormat df = new DecimalFormat("#.#");
String sValue = df.format(ByteBuffer.wrap(output1, 0, 8).getDouble());

위에서 output1 은 서버에서 받은 byte[] 배열 8바이트 double 형이고 이것을 변환 할때 "DecimalFormat" 을 이용하면 원하는

결과를 얻을수 있다. ^^