백준

StringBuilder, BufferedReader, StringTokenizer

새우는 맛있새우 2024. 11. 18. 18:39

자자

주목@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

대장님께서 중요한 이론을 알려주셨따.

숙지할 수 있도록!!!!!!!!!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

============================================================================================

 

기본 형식

StringBuilder는 String과 다르게 mutable 한 성질을 가지고 있다. 즉, 값이 변할 수 있다는 것이다.

StringBuilder는 String과 문자열을 더할 때 새로운 객체를 생성하는 것이 아니라 기존의 데이터에 더하는 방식을 사용하기 때문에 속도도 빠르며 상대적으로 부하가 적다.

한마디로 문자열을 서로 더해줘야 하는 경우에 사용!


  • StringBuilder sb = new StringBuilder(): 객체 선언
  • .append(추가할 문자열).append(추가할 문자열)...........~~~~~
  • StringBuilder는 객체임! 따라서 String으로 바로 반환이 되는게 아니라 StringBuilder형으로 반환된다!
  • String형으로 바꿔주기 위해서 쓰이는 중요한것!-------------------------------->toString()
  • sb.toString()!!

개 빡 치는 

BufferedReader

 

또 빡치!! 단순히 시간단축을 위해서 사용@!!!!

기본형식이다

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str = bf.readLine();
int a = Integer.parseInt(str);

 

readLine은 Scanner의 nextLine과 같은 역할을 한다. 

 

버퍼를 사용하지 않는 입력은, 키보드의 입력이 키를 누르는 즉시 바로 프로그램에 전달된다.

반면 버퍼를 사용하는 입력은, 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송한다. 버퍼가 가득 차거나 혹은 개행 문자가 나타나면 버퍼의 내용을 한 번에 프로그램에 전달한다.

지하철을 탈때를 생각해보자. 사람 한명 탔다고 지하철이 출발해버리면 그냥 개썅욕하겄찌>?

다 모아서 타는게 맞는거다

 String으로 리턴 값이 고정되어 있기 때문에, 다른 타입으로 입력을 받고자 한다면 반드시 형변환이 필요하다.

 

파싱 해줍시다잉~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 


StringTokenizer

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer answer = new StringTokenizer(str);
System.out.println(answer.countTokens());

 

 버퍼리더로 받은 값을

스트링토크나이저에 넣어줬따

참고하겠씁니다.

 

이렇게 사용이 된다.

countTokens()는 토큰의 개수를 세준다.