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

Java에서 한 문자열을 다른 문자열에 삽입하는 방법

이 글에서는 한 문자열을 다른 문자열의 특정 위치에 삽입하는 방법을 자세히 알아보겠습니다. 문자열(String)은 하나 이상의 문자로 구성되며 큰따옴표(" ")로 묶어 표현하는 데이터 타입입니다.

아래 예시를 통해 삽입 과정을 살펴보겠습니다.

입력 및 출력 예시

입력값

첫 번째 문자열: Java Program
두 번째 문자열: Learning
삽입할 인덱스 위치: 0

기대 출력 결과

결과:
LearningJava Program

알고리즘

Step 1 - 시작
Step 2 - 두 개의 문자열(input_string_1, input_string_2)과 결과를 저장할 문자열 객체(result)를 선언합니다.
Step 3 - 각 변수에 값을 정의합니다.
Step 4 - for 반복문으로 첫 번째 문자열을 순회하면서, 'i'번째 위치에서 산술 연산자(+)를 사용해 두 문자열을 연결합니다.
Step 5 - 결과를 출력합니다.
Step 6 - 종료

예제 1: main 함수에서 모든 로직 처리

이 예제에서는 모든 연산을 main 함수 안에서 직접 수행합니다.

public class StringInsert {
    public static void insertString( String input_string_1, String input_string_2, int index) {
    }
    public static void main(String[] args) {
        String input_string_1 = " Java Program";
        String input_string_2 = "Learning";
        int index = 0;
        System.out.println("The first string is defined as: " + input_string_1);
        System.out.println("The second string is defined as: " + input_string_2);
        System.out.println("String to be inserted at index: " + index);
        System.out.println("The result is: ");
        String result = new String();
        for (int i = 0; i < input_string_1.length(); i++) {
            result += input_string_1.charAt(i);
            if (i == index) {
                result += input_string_2;
            }
        }
        System.out.println(result);
    }
}

출력 결과

The first string is defined as: Java Program
The second string is defined as: Learning
String to be inserted at index: 0
The result is:
LearningJava Program

예제 2: 객체 지향 방식으로 함수 분리

이 예제에서는 연산 로직을 별도의 함수로 캡슐화하여 객체 지향 프로그래밍 스타일로 구현합니다.

import java.lang.*;
public class StringInsert {
    public static void insertString( String input_string_1, String input_string_2, int index) {
        String result = new String();
        for (int i = 0; i < input_string_1.length(); i++) {
            result += input_string_1.charAt(i);
            if (i == index) {
                result += input_string_2;
            }
        }
        System.out.println(result);
    }
    public static void main(String[] args) {
        String input_string_1 = " Java Program";
        String input_string_2 = "Learning";
        int index = 0;
        System.out.println("The first string is defined as: " + input_string_1);
        System.out.println("The second string is defined as: " + input_string_2);
        System.out.println("String to be inserted at index: " + index);
        System.out.println("The result is: ");
        insertString(input_string_1, input_string_2, index);
    }
}

출력 결과

The first string is defined as: Java Program
The second string is defined as: Learning
String to be inserted at index: 0
The result is:
LearningJava Program JLearningava Program

핵심 포인트 정리

이 프로그램의 핵심 원리는 다음과 같습니다.

charAt(i) 메서드로 첫 번째 문자열의 각 문자를 하나씩 순회하며 결과 문자열에 추가하고, ② 현재 인덱스가 목표 삽입 위치와 일치할 때 두 번째 문자열을 덧붙입니다. 이렇게 하면 원하는 위치에 자연스럽게 새 문자열이 삽입됩니다.

참고로 실무에서는 문자열 연결 시 StringBuilderStringBuffer를 사용하는 것이 성능 면에서 더 효율적입니다. + 연산자로 문자열을 반복해서 연결하면 매번 새로운 문자열 객체가 생성되어 메모리 낭비가 발생할 수 있기 때문입니다.