푸터 콘텐츠로 바로가기
JAVA 도움말

Java에서 부분 문자열을 사용하는 방법

Java의 부분 문자열 메서드 사용법에 대한 초보자 친화적인 가이드에 오신 것을 환영합니다. Java 개발자이자 교육자로서, 저는 여러분이 Java에서 문자열의 일부를 효율적으로 다루는 방법을 이해하도록 돕는 것을 목표로 합니다. 문자열, 즉 문자들의 연속은 Java 프로그래밍의 기본 요소입니다. 부분 문자열 메서드는 빈 문자열을 처리할 때 고유한 동작을 보입니다. 원본 문자열이 비어 있고 인덱스가 제공되지 않은 경우, 이 메서드는 빈 문자열을 반환합니다. 이 가이드에서는 PDF 생성 및 조작을 위해 설계된 IronPDF Java 라이브러리를 사용한 실용적인 예제를 포함하여 Java에서 부분 문자열을 다루는 데 필요한 모든 것을 자세히 설명합니다.

Java에서 문자열이란 무엇인가요?

부분 문자열에 대해 자세히 알아보기 전에 Java 프로그래밍에서 문자열이란 무엇인지 이해하는 것이 중요합니다. Java에서 문자열은 일련의 문자를 나타내는 객체입니다. Java의 String 클래스는 두 문자열을 더하거나, 문자열을 비교하거나, 또는 여기서 중점적으로 다룰 부분 문자열을 추출하는 등 이러한 문자열을 조작하는 다양한 메서드를 제공합니다.

부분 문자열 메서드 설명

Java 문자열의 부분 문자열 메서드는 Java의 String 클래스에 포함되어 있습니다. 이 기능은 기존 문자열의 일부를 사용하여 새로운 문자열을 생성하도록 설계되었습니다. Java는 이를 위한 두 가지 주요 방법을 제공합니다.

  • public String substring(int beginIndex): 이 메서드는 beginIndex 부터 원래 문자열의 끝까지 새로운 문자열을 생성합니다. Java에서 문자열 인덱스는 0부터 시작한다는 점을 알아두는 것이 중요합니다.
  • public String substring(int beginIndex, int endIndex): 이 버전은 beginIndex 에서 시작하여 endIndex 까지(endIndex는 포함하지 않음)의 문자열을 새로 생성합니다.

부분 문자열을 사용하여 새 문자열 객체 생성

부분 문자열 메서드를 사용할 때 Java는 원래 문자열을 수정하지 않습니다. 대신, 원래 문자열에서 지정된 인덱스 범위의 문자를 포함하는 새 문자열 객체를 생성합니다.

실제 예시: 부분 문자열 추출

이론을 실습에 적용해 볼 간단한 Java 프로그램을 만들어 봅시다.

public class SubstringDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world!";
        // Extracting substring from index 7 to the end
        String world = greeting.substring(7);
        System.out.println(world); // Outputs "world!"

        // Extracting substring from index 0 to 4 (exclusive)
        String hello = greeting.substring(0, 5);
        System.out.println(hello); // Outputs "Hello"
    }
}
public class SubstringDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world!";
        // Extracting substring from index 7 to the end
        String world = greeting.substring(7);
        System.out.println(world); // Outputs "world!"

        // Extracting substring from index 0 to 4 (exclusive)
        String hello = greeting.substring(0, 5);
        System.out.println(hello); // Outputs "Hello"
    }
}
JAVA

이 예시에서, world는 인덱스 7부터 끝까지의 부분 문자열을 포함하고, hello는 인덱스 0부터 4까지의 부분 문자열을 포함합니다. 이는 부분 문자열 추출 메서드의 두 가지 형식을 모두 사용하여 문자열의 서로 다른 부분을 추출하는 방법을 보여줍니다.

Java 서브스트링 메서드 (개발자를 위한 작동 방식): 그림 1 - 이전 코드의 콘솔 출력

고급 문자열 조작

단순한 부분 문자열 추출을 넘어, 부분 문자열 메서드는 문자열의 일부를 비교하거나, 회문을 확인하거나, 서로 다른 로케일의 문자열을 처리하는 등 더욱 복잡한 시나리오에서 강력한 기능을 발휘할 수 있습니다.

문자열 영역 비교

때로는 두 문자열 전체를 비교하는 대신 특정 부분만 비교해야 할 수도 있습니다. Java의 substring 메서드는 이러한 상황에서 매우 유용합니다. 이렇게 하면 될 것 같습니다.

public class CompareRegionsDemo {
    public static void main(String[] args) {
        String str1 = "Hello, world!";
        String str2 = "Hello, Java!";

        // Extracting substrings to compare
        String subStr1 = str1.substring(7);
        String subStr2 = str2.substring(7);

        // Comparing extracted substrings
        if (subStr1.equals(subStr2)) {
            System.out.println("The substrings match.");
        } else {
            System.out.println("The substrings do not match.");
        }
    }
}
public class CompareRegionsDemo {
    public static void main(String[] args) {
        String str1 = "Hello, world!";
        String str2 = "Hello, Java!";

        // Extracting substrings to compare
        String subStr1 = str1.substring(7);
        String subStr2 = str2.substring(7);

        // Comparing extracted substrings
        if (subStr1.equals(subStr2)) {
            System.out.println("The substrings match.");
        } else {
            System.out.println("The substrings do not match.");
        }
    }
}
JAVA

이 프로그램은 서로 다른 두 문자열에서 부분 문자열을 추출하여 비교합니다. 이는 전체 문자열을 비교하는 대신 관심 있는 특정 문자열 영역에 집중하는 방법을 보여줍니다.

Java 서브스트링 메서드 (개발자를 위한 작동 방식): 그림 2 - 이전 코드를 실행한 콘솔 출력

부분 문자열을 이용한 지역화

국제화를 다룰 때는 사용자의 지역 설정에 따라 문자열을 다르게 표시하거나 조작해야 할 수 있습니다. 다음은 미리 정의된 형식에 따라 부분 문자열을 사용하여 문자열 형식을 지정하는 간단한 예입니다.

public class LocalizationDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world! Bonjour, monde! Hola, mundo!";

        // Assuming we know the positions of each localized greeting
        String englishGreeting = greeting.substring(0, 13);
        String frenchGreeting = greeting.substring(15, 28);
        String spanishGreeting = greeting.substring(30);

        System.out.println(englishGreeting); // Outputs "Hello, world!"
        System.out.println(frenchGreeting);  // Outputs "Bonjour, monde!"
        System.out.println(spanishGreeting);  // Outputs "Hola, mundo!"
    }
}
public class LocalizationDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world! Bonjour, monde! Hola, mundo!";

        // Assuming we know the positions of each localized greeting
        String englishGreeting = greeting.substring(0, 13);
        String frenchGreeting = greeting.substring(15, 28);
        String spanishGreeting = greeting.substring(30);

        System.out.println(englishGreeting); // Outputs "Hello, world!"
        System.out.println(frenchGreeting);  // Outputs "Bonjour, monde!"
        System.out.println(spanishGreeting);  // Outputs "Hola, mundo!"
    }
}
JAVA

이 예시는 미리 정의된 형식에 따라 특정 인사말을 추출하는 방법을 보여주며, 사용자가 지정한 지역 설정에 따라 인사말을 선택하도록 수정할 수도 있습니다.

Java 서브스트링 메서드 (개발자를 위한 작동 방식): 그림 3 - 이전 코드 예제의 콘솔 출력

회문 확인

회문이란 단어, 구, 숫자와 같이 공백, 구두점, 대문자 사용 여부에 관계없이 앞뒤로 읽어도 같은 문자열을 말합니다. 주어진 문자열이 회문인지 확인하기 위해 부분 문자열 메서드를 사용하는 방법은 다음과 같습니다.

public class PalindromeCheck {
    public static void main(String[] args) {
        String line = "A man a plan a canal Panama";
        System.out.println("Is palindrome? " + checkPalindrome(line));
    }

    private static boolean checkPalindrome(String str) {
        // Removing all non-letter characters and converting to lowercase
        str = str.replaceAll("[^a-zA-Z]", "").toLowerCase();
        int length = str.length();

        // Checking if characters at each index are equal to their counterparts
        for (int i = 0; i < length / 2; i++) {
            if (str.charAt(i) != str.charAt(length - 1 - i)) {
                return false;
            }
        }
        return true;
    }
}
public class PalindromeCheck {
    public static void main(String[] args) {
        String line = "A man a plan a canal Panama";
        System.out.println("Is palindrome? " + checkPalindrome(line));
    }

    private static boolean checkPalindrome(String str) {
        // Removing all non-letter characters and converting to lowercase
        str = str.replaceAll("[^a-zA-Z]", "").toLowerCase();
        int length = str.length();

        // Checking if characters at each index are equal to their counterparts
        for (int i = 0; i < length / 2; i++) {
            if (str.charAt(i) != str.charAt(length - 1 - i)) {
                return false;
            }
        }
        return true;
    }
}
JAVA

이 코드는 입력 문자열에서 문자 이외의 문자를 제거하고 소문자로 변환하여 문자열을 정리합니다. 그런 다음 시작 위치부터 각 위치의 문자가 끝 위치의 해당 문자와 ​​일치하는지 확인합니다.

Java 서브스트링 메서드 (개발자를 위한 작동 방식): 그림 4 - 이전 코드의 콘솔 출력

Java용 IronPDF 소개

Java 서브스트링 메서드 (개발자를 위한 작동 방식): 그림 5 - IronPDF for Java 웹페이지

IronPDF Java 기능 알아보기 - Java 애플리케이션 내에서 PDF 문서를 생성, 편집 및 관리하는 과정을 간소화하도록 설계된 강력한 라이브러리입니다. 이 라이브러리는 개발자에게 HTML에서 PDF 문서를 생성하는 기능, 폼 처리, 이미지 및 텍스트 추가, 암호화 및 권한 설정을 통한 문서 보안 등 PDF 파일을 조작할 수 있는 광범위한 기능을 제공합니다. 직관적인 API와 포괄적인 문서 덕분에 초보 개발자와 숙련된 개발자 모두 PDF 기능을 Java 프로젝트에 쉽게 통합할 수 있습니다.

PDF 문서 만들기

Java의 부분 문자열 개념과 IronPDF for Java를 함께 사용하는 방법을 보여주는 간단한 예제를 만들어 보겠습니다. 이 예제에서는 HTML 문자열에서 PDF 문서를 생성합니다. 다음으로, Java의 부분 문자열 기능을 활용하여 더 큰 문자열의 부분 문자열을 사용하여 PDF에 텍스트 요소를 추가해 보겠습니다.

프로젝트에 IronPDF for Java 추가하기

IronPDF for Java를 pom.xml 파일에 추가하면 됩니다. Java용 IronPDF 와 Slf4j의 종속성을 추가해야 합니다. 이렇게 하면 아주 쉽게 할 수 있습니다.

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2024.1.1</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</version>
</dependency>
<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2024.1.1</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</version>
</dependency>
XML

하지만 Sonatype 저장소에서 IronPDF for Java를 수동으로 다운로드 할 수 있습니다.

부분 문자열 추출 방법을 사용하여 PDF 생성하기

이제 App.java 파일에 코드를 작성할 차례입니다. 간단한 PDF 문서를 만들고 텍스트를 추가하여 부분 문자열 추출 메서드를 이 과정에 통합하는 방법을 보여드리겠습니다.

import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
import java.awt.print.PrinterException;

public class App {
    public static void main(String[] args) throws IOException {
        License.setLicenseKey("License Key");

        // Example longer string to demonstrate substring usage
        String longString = "IronPDF for Java simplifies PDF generation from HTML content.";
        // Extracting a substring
        String substring = longString.substring(0, 25); // "IronPDF for Java simplifies"

        // Crafting HTML content with the substring
        String htmlContent = "<h1>" + substring + "</h1>" +
                "<p>This PDF document demonstrates generating a PDF from HTML content, including dynamic text from Java strings.</p>";

        // Render HTML as a PDF document
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);
        pdf.saveAs(Paths.get("f:\\IronPdf\\html.pdf"));
    }
}
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
import java.awt.print.PrinterException;

public class App {
    public static void main(String[] args) throws IOException {
        License.setLicenseKey("License Key");

        // Example longer string to demonstrate substring usage
        String longString = "IronPDF for Java simplifies PDF generation from HTML content.";
        // Extracting a substring
        String substring = longString.substring(0, 25); // "IronPDF for Java simplifies"

        // Crafting HTML content with the substring
        String htmlContent = "<h1>" + substring + "</h1>" +
                "<p>This PDF document demonstrates generating a PDF from HTML content, including dynamic text from Java strings.</p>";

        // Render HTML as a PDF document
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);
        pdf.saveAs(Paths.get("f:\\IronPdf\\html.pdf"));
    }
}
JAVA

긴 문자열에서 부분 문자열을 추출한 후에는 이를 PDF 문서에 매끄럽게 통합하여 생성된 PDF 콘텐츠 내에서 일관성 있는 문자열 표현을 보장할 수 있습니다. 이 코드 조각은 IronPDF for Java를 사용하여 PDF 문서를 생성하는 기본 사항을 보여줍니다. 여기에는 HTML에서 콘텐츠를 생성하고 Java의 부분 문자열 기능을 활용하여 PDF에 텍스트를 조작하고 추가하는 방법이 포함됩니다. 이 코드를 실행하면 지정된 디렉터리에 "html.pdf"라는 이름의 PDF 파일이 생성됩니다.

출력

다음은 위 코드로 생성된 PDF 파일입니다.

Java 서브스트링 메서드 (개발자를 위한 작동 방식): 그림 6 - 이전 코드에서 출력된 PDF

이는 우리가 코드에 정의한 것과 정확히 같습니다. Java의 Substring 메서드를 사용하여 PDF에 내용을 추가했습니다. IronPDF 와 부분 문자열 추출 방법의 훌륭한 조합입니다. 이 조합을 사용하면 많은 것을 할 수 있습니다.

결론

이러한 Java IronPDF 기능을 Java의 강력한 문자열 조작 기능(예: 부분 문자열 메서드)과 통합하면 정교한 PDF 처리 애플리케이션을 만들 수 있습니다. 이 가이드는 Java를 사용하여 PDF를 다루는 기본적인 이해를 제공하고 PDF 프로젝트에 부분 문자열 조작을 통합하는 방법을 보여줍니다. 이러한 예제를 통해 실험해보고 더 자세히 살펴보면 Java를 이용한 PDF 조작의 모든 잠재력을 활용할 수 있습니다.

IronPDF for Java는 개발자가 기능을 살펴볼 수 있도록 무료 평가판을 제공합니다. IronPDF 라이선스는 $799에서 시작하며 Java 프로젝트를 위한 종합적인 PDF 생성 솔루션을 제공합니다.

다리우스 세란트
풀스택 소프트웨어 엔지니어 (웹 운영)

다리우스 세런트는 마이애미 대학교에서 컴퓨터 과학 학사 학위를 받았으며, Iron Software에서 풀 스택 웹 운영 마케팅 엔지니어로 근무하고 있습니다. 어린 시절부터 코딩에 매료되었던 그는 컴퓨팅이 신비로우면서도 접근하기 쉬운 분야라고 생각했고, 창의력과 문제 해결 능력을 발휘하기에 완벽한 매체라고 여겼습니다.

Iron Software에서 다리우스는 새로운 것을 만들고 복잡한 개념을 단순화하여 더 쉽게 이해할 수 있도록 하는 것을 즐깁니다. 그는 사내 개발자로서 학생들을 가르치는 데에도 자원하여 차세대 인재들과 전문 지식을 공유하고 있습니다.

다리우스에게 있어 그의 일은 가치 있고 실질적인 영향을 미치기 때문에 보람 있는 일입니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해