import java.util.Arrays;

public class HowCanIUseFormatting {
	public static void main(String[] args) {
		
		// Math.random()이 0:1 숫자 랜덤 생성이니까 이걸 5로 곱해주면 0:5 랜덤 생성.
		// 이걸 버림 하면 0, 1, 2, 3, 4 실수형태의 정수(0.0, 1.0 등) 랜덤 생성.
		System.out.println("Math.floor(Math.random() * 5) : " + Math.floor(Math.random() * 5));
		
		System.out.println("-----------------------------------");
		
		System.out.println("1. int, Integer");
		// 1.1 일반 자료형으로 생성한 a
		int intA = 10;
		// 1.2 객체 자료형으로 생성한 b
		Integer integerA = new Integer(5);
		// 1.3 int와 Integer는 자유롭게 형변환 및 연산이 가능하다.
		int intB = integerA;
		Integer integerB = intA;
		System.out.println("int + Integer 연산도 가능하다. " + (intB + integerB));

		System.out.println("-----------------------------------");
		
		// 2. 포맷팅의 몇 가지 예
		System.out.println("2. 포맷팅의 몇 가지 예");
		// Formatting을 하게 되면 더이상 숫자가 아닌 문자열이 된다. (그래서 문자열 처리가 중요하다!!)
		String r1 = String.format("%04d", intA);			// 공간 4로 만들고, 빈 공간에 0을 채움.
		String r2 = String.format("%4d Hello", intA);		// 공간 4를 만들고, 뒤에는 그냥 Hello라는 문자열을 붙임.
		String r3 = String.format("%4o", intA);				// 10(10) -> 12(8) 진수 변환 가능.
		
		System.out.println(r1 + "         <- String.format('%04d', 10)");
		System.out.println(r2 + "   <- String.format('%04d Hello', 10)");
		System.out.println(r3 + "         <- String.format('%o', 10)");
		
		System.out.println("-----------------------------------");		
		
		// 3. 문자열 분리
		System.out.println("3. 문자열 분리");

		System.out.println("'abc,11,22,44'를 ','로 분리");
		String a2 = "abc,11,22,44";
		String[] arr2 = a2.split(",");
		System.out.println(Arrays.toString(arr2));
		System.out.println();
		
		System.out.println("'abc 11 22 44'를 ' '로 분리");
		String a3 = "abc 11 22 44";
		String[] arr3 = a3.split(" ");
		System.out.println(java.util.Arrays.toString(arr3));	// 이렇게 풀네임으로 쓰면 import 없이 쓸 수 있다.
		System.out.println();
		
		System.out.println("정규표현식을 사용항 분리");
		System.out.println("'oib2zqnu32pinfb2pa'를 숫자를 기준으로 분리");
		String a4 = "oib2zqnu32pinfb2pa";
		String[] arr4 = a4.split("[0-9]");						// 정규표현식을 사용한 분리 (숫자를 기준으로 분리)
		System.out.println(Arrays.toString(arr4));
		System.out.println();
		
		// 문자열 치환
		System.out.println("hellow world에서 world를 Polytech으로 치환");
		String a5 = "hellow world";
		a5 = a5.replace("world","Polytech");
		System.out.println(a5);
		System.out.println();
		
		// 인덱스를 이용해 문자열 뽑아내기
		System.out.println("'hello Polytech'에서 인덱스 1:5 문자열 뽑아내기");
		String a6 = a5.substring(1,5);
		System.out.println(a6);
		System.out.println();
		
		// 4. 숫자를 문자열로 바꾸는 가장 쉬운 방법 (숫자 앞에 ""을 더한다.)
		System.out.println("4. 숫자를 문자열로 바꾸는 가장 쉬운 방법 (숫자 앞에 \"\"을 더한다.)");
		int q = 7;
		System.out.println("int q : " + q);
		String k = "" + q;
		System.out.println("String k : " + k  + "   <-" + k.getClass());
	}
}


결과 : 

Math.floor(Math.random() * 5) : 4.0
-----------------------------------
1. int, Integer
int + Integer 연산도 가능하다. 15
-----------------------------------
2. 포맷팅의 몇 가지 예
0010         <- String.format('%04d', 10)
  10 Hello   <- String.format('%04d Hello', 10)
  12         <- String.format('%o', 10)
-----------------------------------
3. 문자열 분리
'abc,11,22,44'를 ','로 분리
[abc, 11, 22, 44]

'abc 11 22 44'를 ' '로 분리
[abc, 11, 22, 44]

정규표현식을 사용항 분리
'oib2zqnu32pinfb2pa'를 숫자를 기준으로 분리
[oib, zqnu, , pinfb, pa]

hellow world에서 world를 Polytech으로 치환
hellow Polytech

'hello Polytech'에서 인덱스 1:5 문자열 뽑아내기
ello

4. 숫자를 문자열로 바꾸는 가장 쉬운 방법 (숫자 앞에 ""을 더한다.)
int q : 7
String k : 7   <-class java.lang.String

+ Recent posts