스트링 클래스를 얘기할 때 흔히 불변성에 대해 언급한 것을 많이 본다. Immutable을 불변성으로 번역하는데, 이것이 무엇을 의미하는지 이해하기가 쉽지는 않다. 간단하게 말해서 스트링 객체는 한번 만들어지면 그 안에 포함된 문자열의 값이 바뀌지 않는다. 생성될 때 정해진 문자열 데이터가 변할 수 없다는 뜻이다. 대표적인 예로 i번째 글자를 가져오는 charAt(i)라는 메소드는 있지만 i번째 글자를 수정할 수 있는 방법은 없다. 스트링에 들어있는 데이터를 일부라도 바꿀 수 있는 방법이 없다는 것이다. 그렇다면 + 연산이나 substring 메소드는 무엇인가? 일부를 바꾸는 replace 메소드는? 이런 메소드들은 스트링의 값을 변경시키는 것이 아니라 원래 객체는 그대로 두고 새로운 객체를 만들어서 돌..
프로그램을 좀 해본 사람이라면 System.out.printf를 많이 써 봤을 것이다. 자바의 printf는 C 언어의 printf에 뿌리를 두고 있어 프로그래머들에게 익숙한 개념이다. printf는 특히 숫자를 길이나 형식에 맞게 출력하는데 유용하다. 그런데 잘 모르고 있는 사람이 많지만 System.out.format이라는 메소드도 printf와 똑같은 기능을 제공한다. 그런데 자바에서는 이러한 포매팅의 개념이 스트링에서 출발하고 있다. String.format() 메소드가 System.out.printf나 System.out.format에서 사용되는 것과 같다. 그럼 이 format 메소드에 대해 좀더 자세히 알아보자. String.format(포매팅문자열, 인수, ...); 여기서 인수는 포매팅 ..
- Total
- Today
- Yesterday
- contentEquals
- sort key
- Lazy evaluation
- python exercise
- 스트링
- 자바regex
- contains
- typedef
- python example
- APPEND
- format
- max
- 동적바인딩
- 콜렉션
- 패턴
- zip
- 스트링 +
- rust
- follow
- 이터러블
- indexof
- ToString
- comparable
- 지연계산
- C++ 클래스
- Camel Style
- TypeError
- CompareTo
- Iterator
- 이터레이터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |