산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java String 마스터하기: 생성, 메서드, 모범 사례

Java Strings

이 튜토리얼에서는 Java 문자열, 생성 방법, 예제와 함께 String 클래스의 다양한 메서드를 배웁니다.

Java에서 문자열은 문자 시퀀스입니다. 예: "hello"는 'h', 'e', 'l', 'l', 'o' 문자 시퀀스를 포함하는 문자열입니다.

Java에서 문자열을 표현하기 위해 큰따옴표를 사용합니다. 예:

// 문자열 생성
String type = "Java programming";

여기서 type이라는 문자열 변수를 생성했습니다. 변수는 문자열 Java Programming로 초기화됩니다.


예제: Java에서 문자열 생성

class Main {
    public static void main(String[] args) {
        // 문자열 생성
        String first = "Java";
        String second = "Python";
        String third = "JavaScript";
        // 문자열 출력
        System.out.println(first); // Java 출력
        System.out.println(second); // Python 출력
        System.out.println(third); // JavaScript 출력
    }
}

위 예제에서 first, second, third라는 세 문자열을 생성했습니다. 여기서 기본 타입처럼 직접 문자열을 생성합니다.

그러나 Java 문자열을 생성하는 또 다른 방법(new 키워드 사용)도 있습니다. 이 튜토리얼 뒷부분에서 배웁니다.

참고: Java에서 문자열은 기본 타입(int, char 등)이 아닙니다. 대신 모든 문자열은 String이라는 미리 정의된 클래스의 객체입니다.

그리고 모든 문자열 변수는 String 클래스의 인스턴스입니다.


Java 문자열 연산

Java String은 문자열에 다양한 연산을 수행하는 여러 메서드를 제공합니다. 자주 사용되는 문자열 연산을 살펴보겠습니다.

1. 문자열 길이 구하기

문자열 길이를 찾으려면 String의 length() 메서드를 사용합니다. 예:

class Main {
    public static void main(String[] args) {
        // 문자열 생성
        String greet = "Hello! World";
        System.out.println("문자열: " + greet);
        // greet 길이 구하기
        int length = greet.length();
        System.out.println("길이: " + length);
    }
}

출력

문자열: Hello! World
길이: 12

위 예제에서 length() 메서드는 문자열의 총 문자 수를 계산하여 반환합니다. 더 알아보려면 Java String length() 방문.


2. 두 Java 문자열 연결

Java에서 두 문자열을 concat() 메서드로 연결할 수 있습니다. 예:

class Main {
    public static void main(String[] args) {
        // 첫 번째 문자열 생성
        String first = "Java ";
        System.out.println("첫 번째 문자열: " + first);
        // 두 번째 문자열 생성
        String second = "Programming";
        System.out.println("두 번째 문자열: " + second);
        // 두 문자열 연결
        String joinedString = first.concat(second);
        System.out.println("연결된 문자열: " + joinedString);
    }
}

출력

첫 번째 문자열: Java
두 번째 문자열: Programming
연결된 문자열: Java Programming

위 예제에서 first와 second라는 두 문자열을 생성했습니다. 다음 문장을 주목하세요:

String joinedString = first.concat(second);

여기서 concat() 메서드는 second 문자열을 first 문자열에 연결하여 joinedString 변수에 할당합니다.

+ 연산자로도 두 문자열을 연결할 수 있습니다. 더 알아보려면 Java String concat() 방문.


3. 두 문자열 비교

Java에서 equals() 메서드로 두 문자열을 비교할 수 있습니다. 예:

class Main {
    public static void main(String[] args) {
        // 3개 문자열 생성
        String first = "java programming";
        String second = "java programming";
        String third = "python programming";
        // 첫 번째와 두 번째 문자열 비교
        boolean result1 = first.equals(second);
        System.out.println("첫 번째와 두 번째 문자열이 같은가: " + result1);
        // 첫 번째와 세 번째 문자열 비교
        boolean result2 = first.equals(third);
        System.out.println("첫 번째와 세 번째 문자열이 같은가: " + result2);
    }
}

출력

첫 번째와 두 번째 문자열이 같은가: true
첫 번째와 세 번째 문자열이 같은가: false

위 예제에서 first, second, third라는 3개 문자열을 생성했습니다. 여기서 equals() 메서드로 한 문자열이 다른 문자열과 같은지 확인합니다.

equals() 메서드는 문자열 내용을 비교합니다. 더 알아보려면 Java String equals() 방문.

참고: Java에서 == 연산자로도 두 문자열을 비교할 수 있습니다. 그러나 이 접근은 equals() 메서드와 다릅니다. 더 알아보려면 Java String == vs equals() 방문.


Java 문자열의 이스케이프 문자

이스케이프 문자는 문자열 내에 있는 일부 문자를 이스케이프하는 데 사용됩니다.

문자열 안에 큰따옴표를 포함해야 한다고 가정해 봅시다.

// 큰따옴표 포함
String example = "This is the "String" class";

문자열은 큰따옴표로 표현되므로 컴파일러는 "This is the "를 문자열로 처리합니다. 따라서 위 코드는 오류를 일으킵니다.

이 문제를 해결하기 위해 Java에서 이스케이프 문자 \를 사용합니다. 예:

// 이스케이프 문자 사용
String example = "This is the \"String\" class.";

이제 이스케이프 문자가 컴파일러에게 큰따옴표를 이스케이프하고 전체 텍스트를 읽도록 지시합니다.


Java 문자열은 불변(Immutable)입니다

Java에서 문자열은 불변입니다. 즉, 한번 문자열을 생성하면 그 문자열을 변경할 수 없습니다.

더 깊이 이해하기 위해 예제를 고려해 보세요:

// 문자열 생성
String example = "Hello! ";

여기서 example이라는 문자열 변수를 생성했습니다. 변수는 문자열 "Hello! "을 보유합니다.

이제 문자열을 변경하고 싶다고 가정합니다.

// 이전 문자열에 "World" 추가
example = example.concat(" World");

여기서 concat() 메서드로 다른 문자열 World를 이전 문자열에 추가합니다.

이전 문자열 값을 변경한 것처럼 보입니다. 그러나 이는 true가 아닙니다.

무슨 일이 일어났는지 봅시다:

  1. JVM이 첫 번째 문자열 "Hello! "을 가져옵니다.
  2. 첫 번째 문자열에 "World"를 추가하여 새 문자열 생성
  3. 새 문자열 "Hello! World"를 example 변수에 할당
  4. 첫 번째 문자열 "Hello! "은 변경되지 않은 채로 남음

new 키워드로 문자열 생성

지금까지 Java에서 기본 타입처럼 문자열을 생성했습니다.

Java에서 문자열은 객체이므로 new 키워드로도 생성할 수 있습니다. 예:

// new 키워드로 문자열 생성
String name = new String("Java String");

위 예제에서 new 키워드로 name 문자열을 생성했습니다.

여기서 문자열 객체 생성 시 String() 생성자가 호출됩니다. 생성자 더 알아보려면 Java 생성자 방문.

참고: String 클래스는 문자열 생성을 위한 다양한 다른 생성자를 제공합니다. 더 알아보려면 Java String(공식 Java 문서) 방문.


예제: new 키워드로 Java 문자열 생성

class Main {
    public static void main(String[] args) {
        // new로 문자열 생성
        String name = new String("Java String");
        System.out.println(name); // Java String 출력
    }
}

문자열 리터럴 vs new 키워드

이제 문자열 리터럴과 new 키워드로 문자열을 생성하는 방법을 알았으니 주요 차이점이 무엇인지 봅시다.

Java에서 JVM은 모든 문자열을 메모리 내에 저장하기 위해 문자열 풀을 유지합니다. 문자열 풀은 문자열 재사용을 돕습니다.

1. 문자열 리터럴로 문자열 생성 시,

String example = "Java";

여기서 문자열 값(Java)을 직접 제공합니다. 따라서 컴파일러는 먼저 문자열 풀을 확인하여 문자열이 이미 존재하는지 봅니다.

2. new 키워드로 문자열 생성 시,

String example = new String("Java");

여기서 문자열 값이 직접 제공되지 않습니다. 따라서 "Java"가 메모리 풀에 이미 있어도 새 "Java" 문자열이 생성됩니다.


Java String 메서드

위에서 언급한 것 외에도 Java에는 다양한 문자열 메서드가 있습니다. 그중 일부:

메서드설명
contains()문자열이 부분 문자열을 포함하는지 확인
substring()문자열의 부분 문자열 반환
join()구분자를 사용하여 주어진 문자열들 연결
replace()지정된 옛 문자를 새 문자로 대체
replaceAll()정규식 패턴과 일치하는 모든 부분 문자열 대체
replaceFirst()첫 번째 일치하는 부분 문자열 대체
charAt()지정된 위치의 문자 반환
getBytes()문자열을 바이트 배열로 변환
indexOf()문자열에서 지정된 문자의 위치 반환
compareTo()사전 순으로 두 문자열 비교
compareToIgnoreCase()대소문자 무시하고 두 문자열 비교
trim()앞뒤 공백 제거
format()포맷된 문자열 반환
split()문자열을 문자열 배열로 분할
toLowerCase()문자열을 소문자로 변환
toUpperCase()문자열을 대문자로 변환
valueOf()지정된 인수의 문자열 표현 반환
toCharArray()문자열을 char 배열로 변환
matches()문자열이 주어진 정규식과 일치하는지 확인
startsWith()문자열이 주어진 문자열로 시작하는지 확인
endsWith()문자열이 주어진 문자열로 끝나는지 확인
isEmpty()문자열이 비어 있는지 확인
intern()문자열의 표준 표현 반환
contentEquals()문자열이 charSequence와 같은지 확인
hashCode()문자열의 해시 코드 반환
subSequence()문자열에서 부분 시퀀스 반환

java

  1. C# 문자열(String) 마스터: 기초, 연산, 고급 기법 총정리
  2. Java 연산자 마스터하기: 종류, 문법, 실전 예제
  3. Java 인터페이스 마스터: 개념, 구현, 모범 사례
  4. Java Enum 문자열 표현 마스터: 기본값, 오버라이딩, 고급 패턴
  5. Java Try-with-Resources 마스터: 자동 리소스 관리 완전 해설
  6. Java 애너테이션 완전 해설: 종류, 배치 위치, 실전 예제
  7. Java String.charAt() 완전 이해: 문법, 반환타입, 예외, 실전 예제
  8. Java String.endsWith() 마스터: 문자열 접미사 확인 예제
  9. Java 문자열 치환 마스터: replace(), replaceAll(), replaceFirst() 완벽 해설
  10. Java String toLowerCase() & toUpperCase(): 로케일 인식 텍스트 대소문자 변환