카테고리 없음

Java 입출력/문자열 관련 클래스

코딩딩 2016. 11. 1. 14:49

자바 입출력/문자열 관련 클래스


  • Scanner 
  • BufferedReader
  • StringTokenizer 
  • StringBuilder 


Scanner

시스템으로 들어오는 입력(ex.키보드 입력)을 읽어오는 클래스 

1
2
3
import Java.util.Scanner;
Scanner scan = new Scanner(System.in);
String data = scan.NextLine(); 

cs



BufferedReader

시스템 입력(ex. 키보드 입력)을 통해 문자열을 얻어내는 클래스

시스템 입력은 바이트 스트림으로 되어있기 때문에 BufferedReader를 쓰려면 바이트스트림을 문자스트림으로 변환해주는 InputStreamReader를 사용해야 함. 

1
2
BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); 
String data = in.readLine(); 

cs



StringTokenizer


문자나 단어에서 특정문구를 기준으로 자르는 클래스 

1
2
3
4
5
6
7
import Java.util.StringTokenizer;
 
StringTokenizer st = new StringTokenizer("문자열"); 
while(st.hasMoreElements( ){ 
   String data = st.nextElement().toString(); // 공백으로 자를때 
   String data = st.nextToken("특정문자열"); // 특정한 문자열로 자를때 
}

cs


split( ) 메소드


문자열을 특정 문구를 기준으로 자르는 메소드

1
2
3
String[] data ; 
String str; 
data = srt.split("특정문자열"); // 특정 문자열로 나누기만 할 때  

cs



StringBuilder 


문자열을 다루는 클래스 
String과는 다르게 문자열 연산등으로 기존의 공간이 부족하면, 버퍼를 늘려서 유연하게 대처함. 


StringBuffer와 StringBuilder의 차이


제공하는 메서드는 서로 동일
동기화 여부의 차이

      • StringBuffer
각 메소드 별로 Synchronized 키워드가 있어서, 멀티스레드 환경에서도 동기화 지원

      • StringBulider
동기화 보장하지 않음.

멀티스레드 환경이라면 동기화문제를 해결하기 위해 StringBuffer를 사용하는 것이 좋음
StringBuffer는 동기화 문제 처리를 해주기때문에 StringBuilder에 비해 성능이 좋지 않기 때문에
단일 스레드 환경에서는 StringBuilder를 사용하는 것이 좋음.