일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Spring
- 자바기본
- 패스트캠퍼스후기
- 직장인자기계발
- String
- linux
- java
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 스프링
- 웹
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 리눅스
- DesignPattern
- 재택근무
- 패캠챌린지
- javabasic
- 자바
- 국비
- ncs
- java기초
- 디자인패턴
- 디자인
- 자바연습문제
- 패스트캠퍼스
- js
- 직장인인강
- 자바기초
- 자바예제
- DB
- 데이터베이스
Archives
- Today
- Total
FIF's 코딩팩토리
스트링버퍼 클래스 본문
반응형
String 클래스는 자기 자신이 변하지 않는 불변클래스이다.
StringBuffer 클래스는 자기 자신이 변하는 클래스이다.
StringBuffer sb = new StringBuffer();
sb.append("hello");
sb.append(" ");
sb.append("world");
String str = sb.toString();
System.out.println(str);
StringBuffer sb2 = new StringBuffer();
StringBuffer sb3 = sb2.append("hello");
if(sb2 == sb3)
System.out.println("sb2 == sb3");
sb2.append의 반환값은 StringBuffer형(자기자신 this)이다.
StringBuffer가 가지고 있는 메소드 들은 대부분 자기 자신, this를 반환한다. 때문에 자기 자신의 메소드를 호출하여 자기 자신의 값을 바꿔나갈 수 있다. 이러한 방법을 메소드체이닝 이라고 한다.
String str2 = new StringBuffer().append("hello").append(" ").append("world").toString();
System.out.println(str2);
위의 5줄이 이렇게 한줄로 된다.
StringBuffer클래스에는 편리한 메소드들이 많이 있다
연습문제
StringBufferExam의 randomName메소드는 임의의 이름과 성을 고른 다음, 이들을 조합해서 임의의 이름을 만들어냅니다. 22번째 줄에서 메소드체이닝을 이용해 sb에 firstName, 공백(" "), lastName을 붙이고, 마지막에 toString()을 붙여서 String type의 return을 하도록 만들고 제출해 보세요.
import java.util.Random;
public class StringBufferExam{
public static void main(String[]args) {}
public String randomName(){
StringBuffer sb = new StringBuffer();
String[] firstNames = {"Tod", "John", "Michael"};
String[] lastNames = {"Smith", "Brown", "Davis"};
// 0~2 사이의 임의의 숫자를 골라서
int random1 = new Random().nextInt(3);
// 랜덤하게 이름을 뽑는다.
String firstName = firstNames[random1];
// 0~2 사이의 임의의 숫자를 골라서
int random2 = new Random().nextInt(3);
// 랜덤하게 성을 뽑는다.
String lastName = lastNames[random2];
// sb에 이름(fistName) 공백(" ") 성(lastname) 순으로 append해 보세요.
// 단 메소드 체이닝을 이용해야 합니다.
return sb
}
}
정답
import java.util.Random;
public class StringBufferExam {
public static void main(String[] args) {
StringBufferExam sbe = new StringBufferExam();
System.out.println(sbe.randomName());
}
public String randomName() {
StringBuffer sb = new StringBuffer();
String [] firstNames = {"Tod", "John", "Michael"};
String [] lastNames = {"Smith", "Brown", "Davis"};
//0~2 사이의 임의의 숫자를 골라서
int random1 = new Random().nextInt(3);
//랜덤하게 이름을 뽑는다.
String firstName = firstNames[random1];
//0~2사이의 임의의 숫자를 골라서
int random2 = new Random().nextInt(3);
//랜ㄷ머하게 성을 뽑는다.
String lastName = lastNames[random2];
//sb에 이름(firstname) 공백(" ") 성(lastname)순으로 append 해보세요.
//단 메소드 체이닝을 이용해야 합니다.
return sb.append(firstName).append(" ").append(lastName).toString();
}
}
반응형
'Back-End > Java(자바)' 카테고리의 다른 글
[Java]String 클래스의 문제점 (0) | 2019.11.07 |
---|---|
[Java] 프로그램 실행 시간 측정 (0) | 2019.11.07 |
java.lang 패키지와 오토박싱/오토언박싱 (0) | 2019.11.04 |
Object 클래스와 오버라이딩 (0) | 2019.10.16 |
[Java] 맵(Map) (0) | 2019.08.30 |
Comments