Home String 다루기
Post
Cancel

String 다루기

String 비교

1
2
3
4
5
6
7
8
9
10
11
12
// equals 사용해야 정확한 비교가 가능
String a = "hello";
String b = "java";
String c = "hello";
System.out.println(a.equals(b)); // false
System.out.println(a.equals(c)); // true

// 아래처럼 == 연산자 쓰면 잘못된 결과 도출(주소값 비교를 한다)
String a = "hello";
String b = new String("hello");
System.out.println(a.equals(b)); // true
System.out.println(a==b); // false

String 치환, 추출

1
2
3
4
5
6
7
// 치환
String a = "Hello Java";
System.out.println(a.replaceAll("Java", "World"));

// 추출
String a = "Hello Java";
System.out.println(a.substring(0, 4)); // Hell

String 변환

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// String to Int
String from = "123";
int to = Integer.parseInt(from);

// Int to String
int from = 123;
String to = Integer.toString(from);

// Uppercase
String a = "Hello Java";
System.out.println(a.toUpperCase());

// reverse
String a = "Hello Java";
System.out.println(a.reverse()); // avaJ olleH

StringBuffer

String 추가, 변경 시 사용한다

1
2
3
4
5
StringBuffer sb = new StringBuffer();
sb.append("hello");
sb.append(" ");
sb.append("jump to java");
System.out.println(sb.toString()); // 최종으로 변환하기

tringBuffer 자료형은 append 라는 메소드를 이용하여 계속해서 문자열을 추가해 나갈 수 있다.

그리고 위 예제와 같이 toString() 메소드를 이용하면 String 자료형으로 변경할 수 있다.

위 예제를 String 자료형만 가지고 표현하면 다음과 같이 작성할 수 있다.

1
2
3
4
5
String temp = "";
temp += "hello";
temp += " ";
temp += "jump to java";
System.out.println(temp);

두 개의 예제 모두 결과는 동일하지만 내부적으로 객체가 생성되고 메모리가 사용되는 과정은 다르다.

첫번 째 예제의 경우 StringBuffer 객체는 단 한번만 생성된다.

두번 째 예제는 String 자료형에 + 연산이 있을 때마다 새로운 String 객체가 생성된다(문자열 간 + 연산이 있는 경우 자바는 자동으로 새로운 String 객체를 만들어 낸다).

두번 째 예제에서는 총 4개의 String 자료형 객체가 만들어지게 된다.

※ String 자료형은 한번 값이 생성되면 그 값을 변경할 수가 없다.

이렇게 값을 변경할 수 없는 것을 immutable 하다고 한다.

trim, toUpperCase 등의 메소드를 보면 문자열이 변경되는 것 처럼 생각 될 수도 있겠지만

해당 메소드 수행 시 또 다른 String 객체를 생성하여 리턴할 뿐이다.

StringBuffer 는 이와 반대로 값을 변경할 수 있다(mutable 하다).

즉 한번 생성된 값을 언제든지 수정할 수 있다.

참조 링크

점프 투 자바

This post is licensed under CC BY 4.0 by the author.

Array, List 다루기

트랜잭션이란