System.out.println("3. StringBuffer(CharSequence seq) 활용"); System.out.println("=>버퍼 정의를 해줄시 문자열을 직접 정의를 해준다."); System.out.println(); StringBuffer msg2 = new StringBuffer("자바 수업입니다."); System.out.println("msg2는? "+msg2); System.out.println("==================="); // CharSequence seq는 문자열을 말한다.
//3. StringBuffer(CharSequence seq) 활용 //=>버퍼 정의를 해줄시 문자열을 직접 정의를 해준다.
//msg2는? 자바 수업입니다. //===================
System.out.println("4. StringBuffer(String str) 활용"); System.out.println("=> 버퍼에서 새로운 문자열을 생성할 수 있다."); System.out.println(); StringBuffer msg3 = new StringBuffer(new String("후후후")); System.out.println("msg3는? "+msg3); System.out.println("===================");
//4. StringBuffer(String str) 활용 //=> 버퍼에서 새로운 문자열을 생성할 수 있다.
//msg3는? 후후후 //===================
StringBuffer ex = new StringBuffer(); // 연습용 버퍼 정의
System.out.println("5. StringBuffer / append(boolean b) 활용"); System.out.println("=> false/true로 blooen값으로 append할 수 있다."); System.out.println(); ex.append(true); System.out.println("ex의 출력값은? "+ex); System.out.println("===================");
//5. StringBuffer / append(boolean b) 활용 //=> false/true로 blooen값으로 append할 수 있다.
//ex의 출력값은? true //===================
System.out.println("6. StringBuffer / append(char c) 활용"); System.out.println("=> charater 값으로 append할 수 있다."); System.out.println(); ex.append('A'); System.out.println("ex의 출력값은? "+ex); // append는 똑같은 변수에 다른 값을 넣으면 초기화되는 것이 아니라 이어서 나오게 된다. // 여기서는 계속 버퍼를 정의를 해주는 번거로움을 피하기 위해 출력값은 붙여서 나오게 될 것이다. System.out.println("===================");
//6. StringBuffer / append(char c) 활용 //=> charater 값으로 append할 수 있다.
System.out.println("12. StringBuffer / replace(int start, int end, String str) 활용"); System.out.println("=>문자열에 범위를 정하여 대신할 문자열을 대입할 수 있다."); System.out.println(); ex4.replace(2,9,"히 주무세요"); System.out.println("ex4의 출력값은? "+ex4); System.out.println("===================");
//12. StringBuffer / replace(int start, int end, String str) 활용 //=>문자열에 범위를 정하여 대신할 문자열을 대입할 수 있다.
//ex4의 출력값은? 안녕히 주무세요 //===================
System.out.println("13. StringBuffer / reverse() 활용"); System.out.println("=>문자열을 거꾸로 출력할 수 있다."); System.out.println(); ex4.reverse(); System.out.println("ex4의 출력값은? "+ex4); System.out.println("===================");
//13. StringBuffer / reverse() 활용 //=>문자열을 거꾸로 출력할 수 있다.
//ex4의 출력값은? 요세무주 히녕안 //===================
System.out.println("14. CharSequence / subSequence(int start, int end) 활용"); System.out.println("=>입력한 범위는 남겨두고 나머지는 잘라낸다."); System.out.println(); System.out.println("ex4의 출력값은? "+ex4.subSequence(2,4)); System.out.println("==================="); //출력할시에 함께 입력해주어야 필요없는 부분을 잘라낸다.
StringBuffer ex5 = new StringBuffer(" 자바를 열심히 해봅시다. ");
//14. CharSequence / subSequence(int start, int end) 활용 //=>입력한 범위는 남겨두고 나머지는 잘라낸다.
//ex4의 출력값은? 무주 //===================
System.out.println("15. void / trimToSize() 활용"); System.out.println("=>스페이스로 인한 공간만큼의 용량을 빼준다."); System.out.println(); System.out.println("trimToSize() 이전 ex5의 출력값은? "+ex5); System.out.println("trimToSize() 이전 용량 ? "+ex5.capacity()); ex5.trimToSize(); System.out.println("trimToSize() 이후 ex5의 출력값은? "+ex5); System.out.println("trimToSize() 이후 용량 ? "+ex5.capacity()); System.out.println("==================="); //겉으로는 변화되는 모습은 확인할 수 없는 것 같다.
//15. void / trimToSize() 활용 //=>스페이스로 인한 공간만큼의 용량을 빼준다.
//trimToSize() 이전 ex5의 출력값은? 자바를 열심히 해봅시다. //trimToSize() 이전 용량 ? 31 //trimToSize() 이후 ex5의 출력값은? 자바를 열심히 해봅시다. //trimToSize() 이후 용량 ? 15 //===================
System.out.println("16. String toString() 활용"); System.out.println("=> 이미 만들어져 있는 문자열을 새로운 String 변수에 복사할 수 있다."); System.out.println(); String ex6 = ex5.toString(); System.out.println("ex5 문자열 : "+ex5); System.out.println("ex5로부터 ex6으로 복사된 문자열 : "+ex6); System.out.println("===================");
//16. String toString() 활용 //=> 이미 만들어져 있는 문자열을 새로운 String 변수에 복사할 수 있다.
//ex5 문자열 : 자바를 열심히 해봅시다. //ex5로부터 ex6으로 복사된 문자열 : 자바를 열심히 해봅시다. //===================
System.out.println("17. String 클래스의 String(StringBuffer buffer) 활용"); System.out.println("=> 16번과 똑같은 것이다."); System.out.println(); String ex7 = new String(ex5); System.out.println("ex7은? "+ex7); System.out.println("===================");
//17. String 클래스의 String(StringBuffer buffer) 활용 //=> 16번과 똑같은 것이다.
System.out.println("출처 : http://blog.naver.com/rukiner"); // contentEquals는 String 클래스 문자열을 상대와 비교하게 된다. // 그렇기에 위의 ex7 자리에 StringBuffer로 정의된 ex5를 입력하게 되면 에러가 난다. }
주어진 문자열을 토큰으로 분리해서 StringTokenizer 생성. 분리자는 매개변수로 전달된 delim,
만약 returnDelim 값이 true이면 분리자도 토큰에 포함
메소드
설명
int countTokens()
토큰의 개수를 반환
boolean hasMoreElements()
hasMoreTokens메소드와 같은 값 반환
boolean hasMoreTokens()
StringTokenizer 객체의 문자열로부터 사용 가능한 토큰이 있는지 검사
Object nextElement()
nextToken 메소드와 같은 값 반환
단, Object 객체를 반환한다.
String nextToken()
다음 토큰을 반환
String nextToken(String delim)
현재 남아있는 문자열에서 새로운 구분자(delim)를 사용하여 토큰을 반환한다.
import java.util.*;
//StringTokenizer클래스는 String이나 StringBuffer와 같은 패키지 안에 있지 않다.
public class StringTokenizerEx { public static void main(String[] args) { String source = "1,2,3,4,5,6,7,8,9"; StringTokenizer st = new StringTokenizer(source, ",", false); while(st.hasMoreTokens()) { String value = st.nextToken();
//nextToken()은 while문안에 한번만 쓰도록 하자. System.out.println(value); } } }