일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 명품자바
- 자바
- 깃헙
- SWEA 15612번
- 백준 16918번
- SQL
- MySQL
- 백준 1331번
- 모각코
- 그래프
- AWS
- java_programming
- 알고리즘
- 백준 1987
- Python
- 그리디
- 백준 17451번
- 백준 18310번
- 다이나믹프로그래밍
- 백준 3085번
- 머신러닝과 딥러닝
- 다이나믹 프로그래밍
- javascript
- 백준 2512번
- 백준
- 백준 15787번
- HUFS 모각코 캠프
- ubuntu
- 백준 1253번
- react
Archives
- Today
- Total
차곡차곡
[Java] Java 입출력 최적화 본문
# 입력 최적화
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br. readLine(); // "312 3 99 100 846"
/** split 사용 */
// 구분자를 기준으로 쪼개줌, String[] 리턴, 정규화 표현식 처리 가능, 쪼개는 시간이 오래 걸림
String[] srr = line.split(" ");
System.out.println(Arrays.toString(srr)); // [312, 3, 99, 100, 846]
/** StringTokenizer 사용 */
// 구분자를 기준으로 쪼개줌, 쪼개진 String 하나씩 던져줌, 쪼개는 시간이 빠름
StringTokenizer st = new StringTokenizer(line, " "); // 구분자 넣는 것이 빠름
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
/** charAt() */
// String line = br.readLine(); // "2 3 9 1 8"
int[] arr = new int[5];
for (int i = 0, index = 0; i < arr.length; i++, index += 2) {
arr[i] = line.charAt(index) - '0'; // '2' - '0'
}
- String.split() 정규화 표현식을 분석하여 쪼개줌. 느림.
- StringTokenizer 생성자에 델리미터를 넣어서 사용하는 것이 빠름
- 쪼개지 않아도 되는 경우에는 쪼개지 말자! charAt 사용
# 출력 최적화
StringBuilder sb = new StringBuilder(); // 단일 쓰레드용
sb.append('#').append('1').append('\n');
System.out.print(sb.toString));
- String class 보다 StringBuilder가 훨씬 빠름
'Language > JAVA' 카테고리의 다른 글
[Java] 제곱 팁 (0) | 2023.08.03 |
---|---|
#13장 스레드와 멀티태스킹 (0) | 2021.06.28 |
#7장 입출력 스트림 (0) | 2021.06.28 |
#6장 패키지 개념과 자바 기본 패키지 (0) | 2021.06.28 |
#5장 상속 (0) | 2021.06.28 |
Comments