형태 : Integer i = Integer.valueOf(10);
1.기본 타입의 값으로 valueOf() 메소드에 인자로 넣어서 Wrapper 객체 생성
2.문자열로 Wrapper 객체 생성
3.Float 객체는 double 타입의 값으로 생성가능
Integer i = Integer.valueOf(10);
Character c = Character.valueOf('c');
Double f = Double.valueOf(3.14);
Boolean b = Boolean.valueOf(true);
// 문자열로 넣어도 처리가능
Integer i = Integer.valueOf("10)";
Double f = Dbouel.valueOf("3.14");
Boolean b = Boolean.valueOf("false");
// Float 객체는 double 타입의 값으로 생성가능
Float f = Float.valueOf((double) 3.14);
예제
기본 타입의 값을 Wrapper 객체로 변환
ex. Integer num = Integer.valueOf(10);
Wrapper 객체에 들어있는 기본 타입을 값을 뺴내는 것
ex. int n = num.intValue();
Integer num1 = 10; // 자동 박싱 => valueOf() 사용하지 않고도 바로 정수 데이터를 할당해서 Wrapper 객체 생성가능
int num2 = num1; // 자동 언박싱 => 반대로 Wrapper 객체를 기본타입 값으로 받을수도 있다.
String java = "Java";
String cpp = "C++";
int res = java.compareTo(cpp); // Java 의 "J" 보다 C++ 의 "C" 알파벳 문자가 먼저 나오므로 양수리턴
방법1) 더하기 연산자 '+' 로 문자열 연결
방법2) str1.concat(str2);
String str1 = "fuck";
String str2 = "hi";
System.out.print("abcd" + 1 + true + str1 + str2); // abcd1truefuckhi 출력
s1 = s1.concat(s2); ` // fuckhi 출력
String a = " abcd def ";
String b = " xyz\t";
String c = a.trim(); // "abcd def" 저장
String d = b.trim(); // "xyz" 저장
String a = "class";
char c = a.charAt(2); // 'a' 저장
String a = new String("Java,C++")
a = a.subString(5); // "C++" 저장
String a = "Java,C++";
String s[] = a.split(","); // String 배열 s에 "Java" 와 "C++" 이 저장
위 예제의 보충 설명
주의할점 : 연산 범위로 start, end 를 매개변수로 줬을 때 연산을 수행하는 범위가 start ~ (end-1) 임에 유의하자!!
예를들어 아래와 같은 것들 주의!
ex. sb.insert(2, "nice");
ex. sb.replace(2,6, "bad"); => 인덱스 2~5를 문자열 bad 로 대체
ex. sb.delete(0,2);
ex.sb.reverse()
ex. int n = sb.length();
ex. sb.setLength(3);
예제
하나의 문자열을 "구분문자" 를 기준으로 여러 문자열로 분리해서 StringTokenizer 객체에 저장
구분문자를 여러개 지정가능
디폴트 구분문자 : "\n"
하나하나 잘린 문자열들을 각각 토큰이라고 부름
cf) String 클래스의 split() 메소드를 이용해 동일한 구현 가능
String str1 = "name=kitae&addr=seoul&age=21";
StringTokenizer st = new StringTokenizer(str1, "&"); // "&" 를 기준으로 분리
아래 그림의 2번째 예시처럼 구분문자 여러개 선언가능
( 여기서는 구분문자로 & 와 = 를 부여함 )
Math.random() : 0 <= 난수 < 1 사이의 난수를 생성