Java에서는 java.util 패키지의 Arrays 클래스가 제공하는 유틸리티 메서드를 활용하면 배열 전체 또는 원하는 구간만 손쉽게 복사할 수 있습니다. 대표적인 방법으로 copyOf()와 copyOfRange()가 있으며, 각각의 사용법과 예제를 살펴보겠습니다. 1. copyOf() 메서드 사용하기 copyOf() 메서드는 두 개의 매개변수를 받습니다. 복사할 원본 배열 (모든 타입 가능) 복사할 길이를 나타내는 정수 값 이 메서드는 지정한 배열의 시작 위치부터 주어진 길이만큼의 내용을 복사하여 새로운 배열로 반환합니다.
subList()와 clear() 메서드 조합하기List 인터페이스의 subList() 메서드는 두 개의 정수값(인덱스)을 매개변수로 받아, 현재 리스트 객체에서 시작 인덱스(포함)부터 끝 인덱스(제외) 사이에 있는 요소들의 뷰(view)를 반환합니다.clear() 메서드는 리스트 객체의 모든 요소를 제거하는 역할을 합니다.따라서 ArrayList에서 특정 구간의 요소들을 한 번에 삭제하고 싶다면, 제거하려는 서브리스트의 시작 인덱스와 끝 인덱스를 지정한 뒤 이 두 메서드를 연달아 호출하기만 하면 됩니다.obj.subList(fro
Java의 ArrayList 클래스가 제공하는 get() 메서드는 인덱스 값을 나타내는 정수를 매개변수로 받아, 해당 인덱스에 위치한 요소를 반환합니다.ArrayList의 인덱스는 0부터 시작하므로, 이 메서드에 0을 전달하면 리스트의 첫 번째 요소를 얻을 수 있고, list.size()-1을 전달하면 마지막 요소를 얻을 수 있습니다.예제 1: 첫 번째 요소와 마지막 요소 가져오기다음 예제는 문자열을 담은 ArrayList를 생성한 뒤, get() 메서드를 사용해 첫 번째 요소와 마지막 요소를 출력합니다.import java.uti
핵심 메서드 이해하기String 클래스의 contains() 메서드는 문자열 값을 매개변수로 받아, 현재 문자열 객체 안에 해당 문자열이 포함되어 있는지 검사한 뒤 포함되어 있으면 true를, 그렇지 않으면 false를 반환합니다.toLowerCase() 메서드는 현재 문자열의 모든 문자를 소문자로 변환한 새로운 문자열을 반환합니다.대소문자 무시하고 부분 문자열 포함 여부 확인하기대소문자와 관계없이 문자열에 특정 부분 문자열이 포함되어 있는지 확인하려면 다음 순서로 진행합니다.원본 문자열을 준비합니다.찾고자 하는 부분 문자열을 준비
Java에서 final 변수란?변수를 final로 선언하면 한 번 초기화된 이후에는 그 값을 더 이상 수정할 수 없습니다. 또한 일반 인스턴스 변수와 달리 final 변수는 기본값(default value)으로 자동 초기화되지 않습니다.따라서 final 변수는 선언과 동시에 반드시 초기화해야 하며, 그렇지 않으면 컴파일 타임 오류가 발생합니다.초기화하지 않은 경우의 예제public class FinalExample { final int j; pub
final 변수란 무엇인가?자바에서 final 키워드로 선언된 변수는 한 번 초기화된 이후에는 더 이상 값을 변경할 수 없습니다. 즉, final 변수에는 단 한 번만 값을 할당할 수 있으며, 이미 값이 할당된 final 변수에 다시 값을 할당하려고 하면 컴파일 타임 오류가 발생합니다.예제 코드public class FinalExample { final int j = 100; public static void main(String args[]){ F
StringUtils.containsIgnoreCase() 메서드란? Apache Commons 라이브러리의 org.apache.commons.lang3 패키지에 포함된 StringUtils 클래스는 containsIgnoreCase()라는 편리한 메서드를 제공합니다. 이 메서드는 원본 문자열(source string)과 검색 문자열(search string) 두 개의 String 값을 매개변수로 받아, 대소문자를 구분하지 않고 원본 문자열 안에 검색 문자열이 포함되어 있는지 확인합니다. 확인 결과는 boolean 값으로 반환됩니다
Java로 개발하다 보면 문자열 안에 특정 단어가 포함되어 있는지 확인해야 하는 경우가 자주 있습니다. 이 글에서는 가장 널리 사용되는 세 가지 방법, contains(), indexOf(), StringTokenizer를 예제 코드와 함께 정리했습니다. 1. contains() 메서드 String 클래스의 contains() 메서드는 문자 시퀀스를 매개변수로 받아 해당 값이 현재 문자열에 존재하는지 확인합니다. 단어를 찾으면 true, 찾지 못하면 false를 반환하므로 단순 포함 여부만 확인할 때 가장 간결한 방법입니다. 예제
Java에서 문자열(String)을 비교하는 방법은 여러 가지가 있습니다. 각 방법마다 동작 방식과 용도가 다르기 때문에 상황에 맞는 메서드를 선택하는 것이 중요합니다.1. compareTo() 메서드 사용compareTo() 메서드는 두 문자열을 사전순(lexicographically)으로 비교합니다. 비교 기준은 문자열 내 각 문자의 유니코드(Unicode) 값이며, 현재 String 객체가 나타내는 문자 시퀀스와 인수로 전달된 문자열의 문자 시퀀스를 순서대로 비교합니다.예제import java.util.Scanner; publ
Jackson 라이브러리에서는 트리 모델(Tree Model)을 사용해 JSON 구조를 메모리상에 표현하고, JsonNode 객체를 통해 데이터를 추가·조회·수정·삭제하는 CRUD 작업을 수행할 수 있습니다. 이 모델은 JSON 구조가 자바 클래스(POJO)와 일대일로 매핑되지 않거나 구조가 동적인 경우에 특히 유용합니다. JSON을 생성하려면 JsonNodeFactory를 사용합니다. 이 클래스는 노드 인스턴스에 접근할 수 있는 팩토리 메서드와 기본 구현을 제공하며, ObjectNode의 set()과 put() 메서드를 통해 데이
JsonGenerator는 JSON 콘텐츠를 작성하기 위한 공개 API를 정의하는 기반 클래스입니다. 이 클래스의 인스턴스는 JsonFactory 객체의 팩토리 메서드를 통해 생성할 수 있습니다. 팩토리 인스턴스로부터 JsonGenerator를 얻은 후에는 다음과 같은 주요 메서드들을 사용해 JSON을 작성합니다.writeStartObject() : JSON 객체 값의 시작 마커를 작성합니다.writeFieldName() : 필드 이름을 작성합니다.writeString() : 문자열 값을 출력합니다.writeStartArray()
Flexjson은 Java 객체를 JSON 형식으로 직렬화(serialize)하고 역직렬화(deserialize)할 수 있도록 지원하는 경량화된 라이브러리입니다. 별도의 복잡한 설정 없이도 간단한 API 호출만으로 객체를 JSON 문자열로 변환할 수 있어 많은 개발자에게 사랑받고 있습니다.객체 목록(List)을 직렬화하려면 JSONSerializer 클래스가 제공하는 serialize() 메서드를 사용하면 됩니다. 이 메서드는 대상 인스턴스에 대해 얕은(shallow) 직렬화를 수행하며, List 타입의 객체 목록을 인자로 전달하기
Jackson은 Java 기반 라이브러리로, Java 객체를 JSON으로 변환하거나 그 반대로 변환할 때 널리 사용됩니다. Jackson API는 다른 API에 비해 처리 속도가 빠르고 메모리 사용량이 적어 대용량 객체를 다룰 때 특히 유리합니다. JSON 배열을 List로 변환하려면 ObjectMapper 클래스를 사용하면 됩니다. 이 클래스가 제공하는 readValue() 메서드는 첫 번째 인수로 전달받은 JSON 문자열을 두 번째 인수로 지정된 클래스 타입의 객체로 변환해 줍니다. 예제 코드 import java.util.*;
ArrayList<String>을 ArrayList<Object>로 변환하기 제네릭의 타입 매개변수(T) 대신 알 수 없는 타입을 의미하는 물음표(?)를 사용할 수 있습니다. 이것을 와일드카드(wildcard)라고 하며, 메서드 매개변수의 타입, 필드, 지역 변수 등에 활용할 수 있습니다. 와일드카드를 이용하면 ArrayList<String>을 다음과 같이 변환할 수 있습니다. ArrayList<String> stringList = (ArrayList<String>)(Array
클래스 내부에 선언된 배열 변수는 다른 일반 값과 마찬가지로 생성자(Constructor) 또는 Setter 메서드를 사용하여 초기화할 수 있습니다. 두 가지 방법 모두 객체가 생성된 후 배열 데이터를 필드에 할당하는 방식이며, 상황에 따라 적합한 방법을 선택하면 됩니다.예제 1: 생성자를 이용한 배열 초기화다음 Java 예제에서는 배열 타입의 인스턴스 변수를 선언하고, 객체 생성 시 생성자를 통해 해당 배열을 초기화합니다.public class Student { String name;  
Java 프로그래밍을 하다 보면 입력받은 문자열이 순수한 ASCII 문자로만 구성되어 있는지 검증해야 하는 경우가 종종 있습니다. 예를 들어, 외부 시스템과의 데이터 교환이나 인코딩 호환성 문제를 방지하려면 비(非)ASCII 문자가 포함되어 있는지 확인하는 것이 중요합니다. 이 글에서는 두 가지 대표적인 방법을 소개합니다.1. 정규 표현식(Regular Expression) 활용하기문자열이 ASCII 문자만 포함하는지 확인하는 가장 간결한 방법은 다음 정규 표현식을 사용하는 것입니다.\A\p{ASCII}*\z이 정규 표현식의 의미는
1. replace() 메서드 String 클래스의 replace() 메서드는 두 개의 문자열(String) 값을 인자로 받습니다. 문자열에서 교체하고자 하는 부분(부분 문자열) 지정한 부분 문자열을 대체할 새로운 문자열 이 메서드를 활용하면 자바에서 문자열의 일부를 손쉽게 다른 내용으로 바꿀 수 있습니다. 예제 1: 파일 내용에서 특정 단어 교체하기 import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class R
자바에서 날짜를 원하는 형식으로 다루려면 java.text 패키지가 제공하는 SimpleDateFormat 클래스를 활용하면 됩니다. 이 클래스는 날짜를 지정한 패턴에 맞게 포맷하거나, 반대로 문자열을 날짜로 구문 분석(parse)하는 기능을 모두 지원합니다. SimpleDateFormat 클래스의 핵심 개념 SimpleDateFormat의 생성자 중 하나는 원하는 날짜 형식을 나타내는 문자열(예: dd-MM-yyyy)을 매개변수로 받아 SimpleDateFormat 객체를 생성합니다. 또한 이 클래스의 format() 메서드는
String 클래스의 split() 메서드는 현재 문자열을 주어진 정규 표현식과 일치하는 패턴을 기준으로 분리합니다. 이 메서드가 반환하는 배열에는 지정한 정규 표현식에 일치하는 구분자 또는 문자열의 끝을 경계로 잘린 각 부분 문자열이 담기게 됩니다.또한 replaceAll() 메서드는 정규 표현식과 대체 문자열 두 개의 인자를 받아, 일치하는 모든 값을 지정한 문자열로 교체합니다.구현 절차파일의 내용 중 특정 단어를 제외한 모든 문자를 #으로 바꾸려면 다음 순서대로 진행합니다.파일의 내용을 String으로 읽어옵니다.비어 있는 S
사용되는 주요 APIString 클래스의 replaceAll() 메서드는 정규 표현식과 대체 문자열 두 개를 인수로 받아, 일치하는 부분을 지정한 문자열로 교체합니다.java.util.Scanner 클래스는 생성자에 File, InputStream, Path, String 객체를 전달할 수 있으며, 정규 표현식을 기반으로 소스에서 기본형 데이터와 문자열을 토큰 단위로 읽어 들입니다. nextXXX() 계열 메서드를 사용하면 다양한 데이터 타입을 손쉽게 읽을 수 있습니다.StringBuffer 클래스는 불변(immutable)인 St