Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java

  1. 자바(Java)에서 사용자 정의 UnaryOperator 구현하기

    java.util.function.UnaryOperator 인터페이스는 람다 표현식(lambda expression)의 할당 대상으로 사용할 수 있는 함수형 인터페이스로, 하나의 피연산자에 대해 연산을 수행하고 입력과 동일한 타입의 결과를 반환합니다. 이 인터페이스를 직접 구현하면 개발자가 원하는 형태의 사용자 정의 단항 연산자를 자유롭게 만들 수 있습니다.List 인터페이스의 replaceAll() 메서드는 UnaryOperator 객체를 매개변수로 받아, 현재 리스트의 모든 요소에 해당 연산을 일괄 적용한 후 기존 값을 그 결과

  2. Java에서 길이가 짝수이고 10자 이상인 16진수를 검증하는 정규식

    정규식 패턴 살펴보기 Java에서 길이가 짝수이면서 10자 이상인 16진수를 검증하려면 다음 정규식을 사용할 수 있습니다. ^(?=.{10,255}$)(?:0x)?\p{XDigit}{2}(?:\p{XDigit}{2})*$ 패턴을 이루는 각 요소의 역할은 다음과 같습니다. ^ − 문자열의 시작을 나타냅니다. (?=.{10,255}$) − 전방 탐색(lookahead)으로, 전체 문자열의 길이가 최소 10자 이상 255자 이하인지 미리 확인합니다. (?:0x)? − 0x 접두사가 있어도 없어도 매칭이 가능하도록 허용합니다. \p{X

  3. 자바(Java)에서 하나의 입력값에 대해 여러 정규식 패턴을 검증하는 방법

    | 메타 문자 활용: 자바 정규 표현식에서 메타 문자 |는 여러 개의 정규식을 하나로 묶어 매칭할 수 있게 해줍니다. 하나의 입력 텍스트를 두 개 이상의 표현식과 비교해야 할 때, 각 표현식을 |로 구분하여 작성하면 됩니다. exp1|exp2|exp3 예제 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class SampleExample { public static void main(String[

  4. Java 정규식으로 문자열에 영숫자가 하나 이상 포함되어 있는지 확인하는 방법

    자바(Java)에서 문자열에 영숫자(alphanumeric)가 최소 한 개 이상 포함되어 있는지 검사해야 하는 경우가 자주 있습니다. 예를 들어 아이디 유효성 검사나 입력값 필터링 등이 대표적입니다. 이럴 때 정규식을 활용하면 간단하게 처리할 수 있습니다.영숫자 포함 여부를 검사하는 정규식다음 정규식은 문자열에 영숫자가 최소 한 개 이상 포함되어 있는지 확인합니다.^.*[a-zA-Z0-9]+.*$;각 패턴 요소의 의미는 다음과 같습니다.^.* — 문자열의 시작 부분에서 임의의 문자가 0개 이상 나오는 것과 일치합니다.[a-zA-Z0

  5. 자바 정규식으로 숫자와 단어 사이에 공백 자동 삽입하기

    정규 표현식에서는 괄호 ( )로 하위 표현식을 묶어 캡처 그룹(capturing group)을 만들 수 있습니다. 아래 정규 표현식에서 첫 번째 그룹은 숫자를, 두 번째 그룹은 영문 알파벳을 각각 매칭합니다. (\d)([A-Za-z]) 쉽게 말해, 이 패턴은 입력 문자열에서 숫자 바로 뒤에 알파벳이 이어지는 지점과 일치합니다. 치환 문자열에서 $1은 첫 번째 그룹을, $2는 두 번째 그룹을 가리킵니다. 따라서 String 클래스의 replaceAll() 메서드로 위 정규 표현식을 $1 $2(그룹 사이에 공백 포함)로 치환하면, 숫자

  6. 자바(Java) PatternSyntaxException 클래스 완벽 정리 – 정규식 문법 오류 처리 방법

    PatternSyntaxException 클래스란? 자바에서 PatternSyntaxException 클래스는 정규식(regex) 문자열에 문법 오류(syntax error)가 있을 때 발생하는 비검사 예외(unchecked exception)입니다. 즉, 컴파일 시점이 아닌 런타임에 Pattern.compile() 메서드로 잘못된 정규식을 컴파일하려고 할 때 던져집니다. 이 클래스는 java.util.regex 패키지에 속하며, IllegalArgumentException을 상속하기 때문에 반드시 try-catch로 처리할 필요는

  7. Java 정규식의 \E 메타문자 완벽 이해하기

    Java 정규식에서 \E 메타문자는 \Q로 시작된 인용(quoting) 구간을 종료하는 역할을 합니다. \Q와 \E 사이에 배치된 문자들은 정규식 엔진에 의해 특별히 해석되지 않고 그대로 문자 자체로 취급되기 때문에, 특수 문자나 메타문자를 손쉽게 이스케이프할 수 있습니다. 일반 정규식 표현식의 동작 예를 들어 정규식 [aeiou]는 입력 문자열에 모음(a, e, i, o, u)이 하나라도 포함되어 있는지 검사하는 패턴입니다. 아래 예제 코드를 통해 확인해 보겠습니다. import java.util.Scanner; import ja

  8. Java 정규식으로 HTML 굵은 텍스트(b 태그) 내용 매칭하는 방법

    정규식에서 \S는 공백이 아닌 문자(non-whitespace character) 하나를 의미하며, (\S+)는 공백이 아닌 문자가 하나 이상 연속으로 나타나는 패턴을 뜻합니다.따라서 HTML 문서에서 굵은 글씨(<b> 태그)로 감싸진 내용을 추출하려면 아래 단계를 따르면 됩니다.compile() 메서드를 사용해 정규식을 컴파일하여 Pattern 객체를 생성합니다.matcher() 메서드를 사용해 대상 문자열에 대한 Matcher 객체를 얻습니다.group() 메서드를 사용해 입력 문자열에서 매칭된 부분을 출력합니다.예제

  9. Java 정규식의 탐욕적(Greedy) 수량자 완벽 정리

    탐욕적(Greedy) 수량자란?탐욕적 수량자는 Java 정규식에서 기본값으로 적용되는 수량자입니다. 탐욕적 수량자는 입력 문자열에서 가능한 한 가장 많은 부분, 즉 가장 긴 매칭(longest match)을 찾으려고 시도합니다. 만약 매칭에 실패하면 마지막 문자 하나를 제외한 상태에서 다시 매칭을 시도하며, 이 과정을 성공할 때까지 반복합니다.대표적인 탐욕적 수량자는 다음과 같습니다.수량자설명re*0번 이상의 반복을 매칭합니다.re?0번 또는 1번의 등장을 매칭합니다.re+1번 이상의 반복을 매칭합니다.re{n}정확히 n번의 등장을

  10. 자바 Collections.replaceAll()과 List.replaceAll() 메서드 완벽 가이드

    개요 자바에서 리스트(List) 내부의 값을 일괄적으로 변경해야 할 때 replaceAll() 메서드를 활용할 수 있습니다. 자바에는 두 가지 형태의 replaceAll() 메서드가 존재하며, 하나는 Collections 클래스에, 다른 하나는 List 인터페이스에 정의되어 있습니다. 이름은 같지만 동작 방식과 용도가 서로 다르므로, 두 메서드의 차이를 정확히 이해하는 것이 중요합니다. 1. Collections.replaceAll() 메서드 Collections.replaceAll()은 List 객체와 함께 이전 값(oldVal

  11. Java MatchResult groupCount() 메서드 완벽 가이드 – 예제 코드와 실행 결과

    java.util.regex.MatchResult 인터페이스는 정규식 매칭 결과를 조회할 수 있는 다양한 메서드를 제공합니다. 이 인터페이스의 객체는 Matcher 클래스의 toMatchResult() 메서드를 통해 얻을 수 있습니다. 이 메서드는 현재 매처(matcher)의 매칭 상태를 나타내는 MatchResult 객체를 반환하며, 이를 통해 매칭 결과를 자유롭게 확인하고 활용할 수 있습니다. 이 중 groupCount() 메서드는 현재 객체의 정규식 패턴에 포함된 캡처 그룹(capturing group)의 개수를 세어 반환합니

  12. 빈 입력값도 허용하는 이메일 유효성 검사 Java 정규식 프로그램

    빈 필드를 포함한 이메일 유효성 검사 정규식일반적으로 이메일 유효성 검사 시 입력값이 반드시 존재해야 하지만, 경우에 따라 빈 문자열(공백 입력)도 유효한 값으로 허용해야 할 때가 있습니다. 아래 정규식은 일반적인 이메일 형식과 빈 입력값을 모두 매칭합니다.^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})?$정규식 구성 요소 설명^ : 문자열의 시작을 의미합니다.[a-zA-Z0-9._%+-] : @ 기호 앞에서 영문 알파벳(대소문자), 숫자, 그리고 +, _, ., %, - 중 한 글자와 매

  13. Java List.replaceAll() 메서드 완벽 정리 – UnaryOperator로 리스트 요소 일괄 변환하기

    List 인터페이스의 replaceAll() 메서드는 특정 연산을 나타내는 UnaryOperator 객체를 매개변수로 받아, 현재 리스트의 모든 요소에 해당 연산을 수행한 후 기존 값을 그 결과로 대체합니다. 주요 특징 리스트의 모든 요소에 동일한 연산을 한 번에 적용할 수 있습니다. 연산 결과가 원본 리스트에 직접 반영되는 제자리(in-place) 방식으로 동작합니다. Java 8부터 도입된 기능으로, 람다식이나 메서드 참조와 함께 사용하면 코드가 훨씬 간결해집니다. 예제 코드 아래 예제에서는 문자열을 대문자로 변환하는 U

  14. Java 정규식 \p{IsLatin} 문자 클래스로 라틴 문자 매칭하기

    \p{IsLatin}은(는) Java 정규 표현식에서 라틴(Latin) 문자와 일치시키는 데 사용되는 문자 클래스입니다. 이 클래스는 유니코드 스크립트 Latin에 속하는 모든 문자를 매칭하므로, 영어 알파벳뿐만 아니라 é, á, ñ처럼 악센트가 포함된 문자도 함께 찾아낼 수 있습니다.예제 1: 라틴 문자 개수 세기다음 예제는 사용자로부터 문자열을 입력받아 \p{IsLatin}을 사용해 문자열에 포함된 라틴 문자의 개수를 세는 프로그램입니다.import java.util.Scanner; import java.util.regex.Ma

  15. Java MatchResult group(int group) 메서드 완벽 가이드 – 예제 코드 포함

    java.util.regex.MatchResult 인터페이스는 정규식 매칭 작업의 결과를 조회할 수 있는 다양한 메서드를 제공합니다.이 인터페이스의 객체는 Matcher 클래스의 toMatchResult() 메서드를 통해 얻을 수 있습니다. 이 메서드는 현재 매처(matcher)의 매칭 상태를 나타내는 MatchResult 객체를 반환하며, 이를 통해 매칭 결과를 자유롭게 확인할 수 있습니다.group(int group) 메서드란?MatchResult 인터페이스의 group(int group) 메서드는 특정 그룹 번호를 나타내는 정

  16. 자바 정규식으로 공백과 구두점 기준 문자열 분할하기

    정규식 패턴으로 구두점과 공백 찾기 정규식 문자 클래스 [!._,@? ]는 마침표(.), 밑줄(_), 쉼표(,), 작은따옴표(), @, 물음표(?), 그리고 공백 문자를 모두 매칭합니다. 여기에 공백을 의미하는 \s를 함께 사용하면 탭이나 줄바꿈을 포함한 모든 종류의 공백까지 처리할 수 있습니다. 예제 1: Pattern과 Matcher로 매칭 개수 세기 java.util.regex 패키지의 Pattern과 Matcher 클래스를 사용하면 입력 문자열에서 해당 패턴이 몇 번 나타나는지 손쉽게 확인할 수 있습니다. import jav

  17. Java 정규식으로 줄바꿈 문자를 구분자로 사용해 문자열 분할하기

    Windows 운영체제에서는 \r\n이 줄 구분자(개행 문자)로 사용됩니다. 이때 정규식 \\r?\\n은 이러한 줄 끝(line ending)과 일치하도록 작성된 패턴입니다. 여기서 \\r?는 캐리지 리턴(CR)이 있어도 없어도 된다는 의미이며, \\n은 줄 바꿈(LF)을 나타냅니다. 덕분에 Windows뿐 아니라 Linux, macOS 등 서로 다른 개행 문자 방식을 가진 환경에서도 동일하게 동작합니다.String 클래스의 split() 메서드는 정규식을 매개변수로 받아, 현재 문자열을 해당 패턴이 일치하는 지점을 기준으로 토큰

  18. Java 정규식으로 문자열의 모든 문자 출력하기 – Pattern과 Matcher 활용법

    개요정규식에서 메타 문자 "."(점)는 줄바꿈 문자를 제외한 모든 문자와 매칭됩니다. 이 특성을 활용하면 Java에서 입력받은 문자열을 한 글자씩 분리하여 출력할 수 있습니다.정규식을 사용해 문자열의 모든 문자를 출력하는 절차는 다음과 같습니다.compile() 메서드로 정규 표현식을 컴파일하여 Pattern 객체를 생성합니다.matcher() 메서드에 대상 문자열을 전달하여 Matcher 객체를 생성합니다.find() 메서드로 매칭되는 부분을 순차적으로 찾고, 매칭이 발견될 때마다 group() 메서드를 사용해

  19. Java 정규식(Regex)으로 이메일 주소 유효성 검사하는 방법

    사용자 입력값을 다루는 애플리케이션에서 이메일 주소가 올바른 형식인지 확인하는 것은 매우 중요한 검증 절차입니다. 자바에서는 java.util.regex 패키지를 활용하면 정규식 기반으로 손쉽게 이메일 주소의 유효성을 검사할 수 있습니다.이메일 주소 검증용 정규식다음은 일반적인 이메일 주소 형식과 일치하는 정규식 표현식입니다.^[\\w!#$%&*+/=?`{|}~^-]+(?:\\.[\\w!#$%&*+/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$이 정규식은 크게 세 부분으로 구

  20. Java 정규식 \p{InGreek} 문자 클래스로 그리스 문자 매칭하기

    정규식에서 \p{InGreek}은 그리스(Greek) 문자 블록에 속한 모든 문자와 일치하는 POSIX 스타일의 문자 클래스입니다. 이 패턴을 활용하면 입력된 문자열에서 그리스 문자를 쉽게 찾거나 개수를 세거나, 특정 문자열에 그리스 문자가 포함되어 있는지 검증할 수 있습니다.예제 1: 문자열에서 그리스 문자 개수 세기아래 예제는 사용자로부터 문자열을 입력받아, 정규식 \p{InGreek}을 컴파일한 후 Matcher 객체를 통해 해당 문자열에 포함된 그리스 문자의 개수를 출력합니다.import java.util.Scanner; i

Total 1926 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:48/97  20-컴퓨터/Page Goto:1 42 43 44 45 46 47 48 49 50 51 52 53 54