Java 24

[Java] 문자열 함수 split() 정리

Java에서 문자열을 다룰 때 특정 구분자를 기준으로 문자열을 분리해야 하는 경우가 자주 발생한다. 이때 유용하게 사용할 수 있는 메서드가 split()이다. 본 글에서는 split()의 기본 문법, 특징, 다양한 예시, 주의사항을 정리한다. 1) split() 함수의 문법String[] result = 문자열.split(String regex);String[] result = 문자열.split(String regex, int limit);regex: 구분자를 정규표현식(Regular Expression)으로 지정한다.limit: 분리할 최대 개수를 지정한다.양수: 최대 limit 개수만큼 분리된다.0: 마지막 빈 문자열은 제거된다.음수: 제한 없이 모두 분리된다. 2) split() 함수의 특징구분자는..

Java/Java 2025.08.28

[Java] 입력 파싱 - StringTokenizer 총정리

빠른 입력 파싱은 많은 데이터를 다룰 때 필수적이다. Java에서는 BufferedReader와 함께 StringTokenizer를 사용하여 공백 또는 지정한 구분자 기준으로 문자열을 빠르게 토큰화할 수 있다. 이번 글에서는 StringTokenizer의 정의와 특징, 기본 사용법, 실전 활용 예제, 그리고 주의사항을 정리해보자. 1) StringTokenizer1-1) 정의java.util.StringTokenizer는 문자열을 하나 이상의 구분자(delimiter) 문자 기준으로 잘라 연속된 토큰 단위로 순차 탐색하는 유틸리티 클래스이다.모든 토큰은 문자열로 반환되며, hasMoreTokens()와 nextToken()으로 순회한다.1-2) 특징기본 구분자는 공백류 문자이다.구분자 문자열에 포함된 각..

Java/Java 2025.08.22

[Java] 입력 처리- Scanner와 BufferedReader 총정리

자바에서는 주로 Scanner와 BufferedReader를 사용하여 입력을 처리한다. 본 글에서는 두 가지 방식의 정의와 특징을 정리하고, 각각의 사용 예시를 통해 언제 어떤 방식을 선택하면 좋은지 살펴본다. 1) Scanner1-1) 정의Scanner는 자바에서 기본적으로 제공하는 입력 클래스이다.간단한 코드로 정수, 문자열, 실수 등을 입력받을 수 있으며,사용법이 직관적이라는 장점이 있다.1-2) 특징입력 처리 코드가 간단하다.데이터 타입별로 입력을 받을 수 있다. (예: nextInt, nextDouble, nextLine)입력 속도가 상대적으로 느리기 때문에, 대규모 입력에서는 시간 초과가 발생할 수 있다.1-3) 사용 예시import java.util.Scanner;public class Ma..

Java/Java 2025.08.21

[Java] 코딩테스트에서 자주 쓰이는 String 함수 총정리

코딩테스트 문제를 풀다 보면 문자열 처리가 필수적으로 등장한다. Java에서는 문자열을 다루기 위한 다양한 String 메서드를 제공하고 있으며, 이를 잘 활용하면 문제를 훨씬 간단하게 해결할 수 있다. 본 글에서는 코딩테스트에서 자주 사용되는 String 함수들을 정의, 예시, 활용, 주의사항 순서로 정리한다. 1) indexOf 함수1-1) 정의문자열에서 특정 문자나 문자열이 처음 등장하는 위치(인덱스)를 반환한다.만약 존재하지 않으면 -1을 반환한다.1-2) 기본 사용 예시String str = "hello world";System.out.println(str.indexOf("o")); // 4System.out.println(str.indexOf("world")); // 6System.ou..

Java/Java 2025.08.20

[Java] Optional 활용 팁 & 실전 예제

Java 8에서 도입된 Optional 클래스는 null 처리를 보다 안전하고 명확하게 하기 위한 도구이다. nullPointerException(NPE)을 방지하고, 코드 가독성을 높이는 데 유용하게 사용된다. 이번 글에서는 Optional의 정의와 특징, 기본적인 사용 예제, 실무에서의 활용 예제까지 정리한다. 1) 정의와 특징1-1) 정의Optional은 '값이 있을 수도 있고 없을 수도 있는 컨테이너 객체'이다.null 대신 객체의 존재 여부를 명시적으로 표현할 수 있도록 도와준다.1-2) 특징값이 존재하는 경우와 존재하지 않는 경우를 명확하게 구분할 수 있다.null 체크를 대체하여 가독성을 높인다.map, filter, ifPresent 등 함수형 스타일 메서드를 제공한다.Optional은 필..

Java/Java 2025.08.19

[Java] Apache POI(XSSF)를 사용한 Excel(XLSX) 파일 처리

Apache POI는 Java에서 Microsoft Office 문서를 읽고 쓸 수 있게 해주는 라이브러리이다. 그중 XSSF는 Excel 2007 이상(xlsx) 포맷을 처리하는 구현체이다. 이번 글에서는 XSSF를 사용해 엑셀 파일을 생성, 읽기, 그리고 고급 기능을 활용하는 방법을 알아보자. 1) 환경 설정Apache POI를 사용하려면 Maven 또는 Gradle에 의존성을 추가해야 한다. org.apache.poi poi-ooxml 5.2.5// Gradle 설정implementation 'org.apache.poi:poi-ooxml:5.2.5' 2) 엑셀 파일 생성하기간단한 데이터로 XLSX 파일을 생성하는 예제이다.import org.apache.poi.xssf.usermod..

Java/Java 2025.08.11

[Java] Java 11의 주요 특징 정리 및 Java 8과의 차이점 비교

Java 11은 Java 8 이후 LTS(Long-Term Support) 버전으로, 오랜만에 등장한 장기 지원 버전이여서 실무에서도 자주 사용한다. Java 8에서 Java 11로 넘어가며 생긴 주요 변화는 신규 기능 추가뿐 아니라, 기존 모듈의 제거, 표현식의 간결화, 성능 향상 등을 포함한다. 1) Java 11 주요 기능 및 Java 8과의 차이점1-1) var 키워드로 로컬 변수 선언 (Java 10 도입)Java 11에서도 var를 사용하여 지역 변수의 타입을 생략할 수 있다.Java 8에서는 명시적으로 타입을 작성해야 했기 때문에가독성과 유지보수성 측면에서 차이가 있다.// Java 11var name = "ChatGPT";System.out.println(name);// Java 8Stri..

Java/Java 2025.08.07

[Java] Java 8의 주요 특징 정리

Java 8은 자바 언어에 함수형 프로그래밍 개념을 본격적으로 도입한 버전으로, 람다식, Stream API, Optional 클래스 등 코드의 간결성과 안정성을 높이는 다양한 기능들이 추가되었다. 특히 컬렉션 처리와 null 관련 문제 해결에 큰 도움이 되는 기능들이 포함되어 있어, 실무에서도 널리 사용되고 있다. 1) Java 8 주요 기능 목록람다식 (Lambda Expression)Stream APIOptional 클래스인터페이스의 default 및 static 메서드 2) 람다식 (Lambda Expression)2-1) 개요람다식은 익명 함수 형태로 간결한 함수형 코드를 작성할 수 있도록 해준다.익명 내부 클래스의 코드를 줄이고 가독성을 높여준다.2-2) 예시// 기존 방식Runnable r1..

Java/Java 2025.08.06

Spring Boot의 설정 파일 - yml과 properties의 차이

Spring Boot에서는 애플리케이션의 실행 환경에 따라다양한 설정값을 관리할 수 있도록 application.yml 또는 application.properties 파일을 사용한다. 두 형식 모두 설정 기능은 동일하지만, 문법적 구조나 가독성, 유지보수 측면에서 차이가 존재한다. 이번 글에서는 각 파일의 특징과 문법, 예시를 살펴보고, 어떤 상황에서 어떤 설정 파일을 사용하는 것이 더 적합한지 정리해본다. 1) Spring Boot의 설정 파일1-1) 설정 파일의 역할Spring Boot에서는 애플리케이션의 설정값(포트, DB 정보, 로깅 등)을외부 설정 파일에 정의하여 관리할 수 있다.대표적으로 application.properties와 application.yml이 있으며,두 형식 모두 동일한 목적..

[Java] 자바 전역변수, 지역변수, static 변수란?

자바에서 변수는 선언 위치에 따라 전역변수와 지역변수로 나뉘며, static을 사용하면 객체 없이도 공유되는 클래스 변수로 사용할 수 있다.이번 글에서는 전역변수, 지역변수, static 변수에 대해 알아보자. 1) 전역변수1-1) 정의전역변수는 클래스 내부에서 선언된 변수로, 객체 전체에서 사용할 수 있다. 주로 필드(Field)라고 부른다. 1-2) 특징클래스의 모든 메서드에서 접근 가능객체가 생성될 때 메모리에 함께 올라감초기화를 하지 않아도 기본값이 자동으로 설정됨 1-3) 사용예시class Student { String name; // 전역변수 int age; // 전역변수 void printInfo() { System.out.println(name + "..

Java/Java 2025.07.11