Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Java추상클래스
- Java try-catch
- 자바 예제
- db
- 자바 추상메서드
- 데이터베이스
- Java업캐스팅
- Java객체배열
- 자바 try-catch
- Java 내부 클래스
- 자바 String클래스
- oracle
- 자바 스트링클래스
- nodejs
- java super( )
- Express
- Java문자열 클래스
- 자바 내부 클래스
- 자바 제어문
- dbeaver
- Java다운캐스팅
- 자바 문자열 클래스
- 자바 Random클래스
- 자바 Wrapper클래스
- Java 추상 메서드
- database
- 오라클
- Java thorw
- 코딩
- DBMS
Archives
- Today
- Total
코딩이란 무엇일까
Java/자바[19일차] (1)-StringBuffer클래스,StringTokenizer클래스 본문
StringBuffer클래스
String클래스는 불변 객체입니다.
String객체의 값을 바꾸면 새로운 참조 값을 갖습니다.
따라서 자주 사용할수록 느려진다는 단점이 있습니다.
이러한 단점을 보완하기 위한 클래스가 StringBuffer클래스입니다.
StringBuffer클래스는 객체 안의 데이터를 내부적으로 변경할 수 있으므로
새로운 객체를 만들지 않는 가변 객체입니다.
StringBuffer클래스의 메서드
메서드 | 설명 |
append( ) | 매개변수로 입력된 값을 문자열로 바꾸어서 더해주는 메서드 |
reverse( ) | 문자열의 순서를 반대로 나열하는 메서드 |
insert(int pos,Object obj) | 두 번째 매개변수의 값을 문자열로 바꾸어서 pos위치에 추가하는 메서드 |
delete(int start, ine end) | start 위치부터 end 직전 위치의 문자열을 제거하는 메섣, |
deleteCharAt(int index) | index위치에 있는 문자를 제거하는 메서드 |
StringBuffer클래스 사용
String 클래스의 참조 값 변화 16진수로 보기
for(int i=0;i<5;i++) {
result +=i+"/"; //result = result+i+"/";
System.out.println("중간결과 result :"+ result);
System.out.println("중간결과 result 객체 :"+ Integer.toHexString(result.hashCode()));
}
출력 결과
String클래스는 객체에 값이 들어갈 때마다 참조 값이 변경되는 것을 확인할 수 있습니다.
StringBuffer클래스의 참조 값 변화 16진수로 보기
StringBuffer sb= new StringBuffer();
System.out.println("초기 sb:"+ sb);
for(int i=0;i<5;i++) {
sb.append(i).append(":");
System.out.println("중간결과 sb :"+ sb);
System.out.println("중간결과 sb 객체 :"+ Integer.toHexString(sb.hashCode()));
}
출력 결과
StringBuffer 객체에 값이 추가되어도 참조 값이 변경되지 않는 것을 볼 수 있습니다.
StringBuffer클래스 메서드 사용해보기
append( ) : 매개변수로 입력된 값을 문자열로 바꾸어서 더해줍니다.
sb.append(1+".").append("append");
System.out.println(sb);
//출력 결과 : 1.append
reverse( ) :문자열의 순서를 반대로 나열합니다.
System.out.println(sb.reverse());
//출력 결과:dneppa.1
insert(int pos, Object obj) : 두 번째 매개변수의 값을 문자열로 바꾸어서 pos위치에 추가합니다.
sb.insert(0, "2.insert"); //0번째 위치에 추가
System.out.println(sb);
//출력 결과: 2.insert1.append
delete(int start, int end ) :start위치부터 end 직전 위치의 문자열을 제거합니다.
sb.delete(0, 8);
System.out.println(sb); //2.insert삭제
//출력 결과 : 1.append
deleteCharAt(int index) : index위치에 있는 문자를 제거
sb.deleteCharAt(0);
System.out.println(sb);
//출력 결과 : .append
StringTokenizer클래스
StringTokenizer 클래스는 java.util패키지에 있는 클래스로
문자열을 구분 문자열 기준으로 분리할 때 사용합니다.
StringTokenizer 메서드
메서드 | 설명 |
nextToken( ) | 다음 토큰으로 이동 |
hasMoreTokens( ) | 다옴 토큰이 존재하면 true, 존재하지 않으면 false |
countTokens | 남은 토큰의 개수 |
StringTokenizer 사용해보기
String s="이름 : 홍길동 나이:30 거주지:서울";
StringTokenizer st= new StringTokenizer(s,": " );
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
출력 결과
"이름 : 홍길동 나이:30 거주지:서울" 문자열이
: 기준으로 나누어진 것을 확인할 수 있습니다.
문자열을 StringTokenizer로 나누어 List객체 추가해보기
Info클래스
public class Info {
private String name;
private int age;
private String email;
private String domain;
private int userN;
public Info(String name,int age,String email,String domain,int userN) {
this.name=name;
this.age=age;
this.email=email;
this.domain=domain;
this.userN=userN;
}
@Override
public String toString() {
return "Info [name=" + name + ", age=" + age + "
,email=" + email + ", domain=" + domain +
", userN="+ userN + "]";
}
}
메인 메서드
public static void main(String[] args) {
//아래의 문자열을 StringTokenizer를 사용해 구분문자를 나눈 뒤 List에 객체별로 담아줍니다.
String info="[홍길동,23,coding123@naver.com,1],[카리나,23,coco123@gmail.com,2],[즐라탄,43,Acmilano123@daum.com,3],";
StringTokenizer st= new StringTokenizer(info,",[]@:");
int i=0;
List<Info>in=new ArrayList<>();
while(st.hasMoreTokens()) {
in.add(new Info( //생성자
st.nextToken(), //name 초기화
Integer.parseInt(st.nextToken()), //age 초기화
st.nextToken(), //email 초기화
st.nextToken(), //domain 초기화
Integer.parseInt(st.nextToken()) //userN 초기화
));
System.out.println(in.get(i).toString()); //ArrayList의 인덱스별 객체값 출력
i++;
}
이번에는 info라는 회원정보를 담은 문자열을 StringTokenizer클래스에서 구분 문자를 사용해 나눈 뒤
각각의 값을 객체별로 Info에 넣어 ArrayList에 객체를 추가했습니다.
'국비지원수업' 카테고리의 다른 글
Java/자바 [20일차] (1)-예외 (0) | 2022.11.19 |
---|---|
Java/자바 [19일차] (2)-람다식 (0) | 2022.11.15 |
Java/자바[18일차] (2)-정렬 알고리즘, Comparator인터페이스 (0) | 2022.11.14 |
Java/자바[18일차] (1)-익명 구현 클래스 (0) | 2022.11.14 |
Java/자바[17일차] 인터페이스(Interface) (0) | 2022.11.12 |
Comments