JavaRush /Java Blog /Random-KO /Java의 문자열 클래스

Java의 문자열 클래스

Random-KO 그룹에 게시되었습니다
Java의 String 클래스는 Java의 문자열과 함께 작동하도록 설계되었습니다. Java 프로그램에 정의된 모든 문자열 리터럴(예: "abc")은 String 클래스의 인스턴스입니다. 주요 특징을 살펴보겠습니다.
  1. 클래스는 Serializable및 인터페이스를 구현합니다 CharSequence. 패키지에 포함되어 있으므로 java.lang가져올 필요가 없습니다.
  2. Java의 String 클래스는 최종 클래스이므로 자식을 가질 수 없습니다.
  3. String 클래스는 불변 클래스입니다. 즉, 해당 객체가 생성된 후에는 변경할 수 없습니다. String 클래스의 객체를 생성하는 String 객체에 대한 모든 작업은 새로운 객체를 생성하게 됩니다.
  4. 불변성으로 인해 String 클래스 객체는 스레드로부터 안전하며 다중 스레드 환경에서 사용할 수 있습니다.
  5. toStringJava의 모든 객체는 모든 Java 클래스가 클래스에서 상속하는 메서드를 통해 문자열로 변환될 수 있습니다 Object.
Java의 문자열 클래스 - 1

Java 문자열 작업

이는 Java에서 가장 일반적으로 사용되는 클래스 중 하나입니다. 여기에는 문자열의 특정 문자를 분석하고, 문자열을 비교 및 ​​검색하고, 하위 문자열을 추출하고, 모든 문자를 소문자와 대문자로 변환하여 문자열 복사본을 만드는 등의 방법이 있습니다. String 클래스의 모든 메소드 목록은 공식 문서 에서 찾을 수 있습니다 . Java는 또한 기본 요소를 문자열로 또는 그 반대로 변환하는 간단한 연결(문자열 연결) 메커니즘을 구현합니다. Java에서 String 클래스를 사용하는 몇 가지 예를 살펴보겠습니다.

문자열 만들기

String 클래스의 인스턴스를 만드는 가장 쉬운 방법은 문자열 리터럴 값을 할당하는 것입니다.
String s = "I love movies";
그러나 String 클래스에는 다음을 수행할 수 있는 많은 생성자가 있습니다.
  • 빈 문자열을 포함하는 객체 생성
  • 문자열 변수의 복사본을 만듭니다
  • 문자 배열을 기반으로 문자열 생성
  • 바이트 배열을 기반으로 문자열 생성(인코딩 고려)
  • 등.

문자열 추가

Java에서 두 개의 문자열을 추가하는 것은 +. Java에서는 변수와 문자열 리터럴을 서로 추가할 수 있습니다.
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
String 클래스의 객체를 다른 클래스의 객체와 함께 추가함으로써 후자를 문자열 형식으로 줄입니다. 다른 클래스의 객체를 문자열 표현으로 변환하는 작업은 toString객체에 대한 암시적 메서드 호출을 통해 수행됩니다. 다음 예를 통해 이를 보여드리겠습니다.
public class StringExamples {
    public static void main(String[] args) {
        Human max = new Human("Max");
        String out = "java object: " + max;
        System.out.println(out);
        // Output: Java object: Person named Max
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

문자열 비교

문자열을 비교하려면 다음 방법을 사용할 수 있습니다 equals().
public static void main(String[] args) {
    String x = "Test String";
    System.out.println("Test String".equals(x)); // true
}
문자열을 비교할 때 대소문자가 중요하지 않은 경우 다음 방법을 사용해야 합니다 equalsIgnoreCase().
public static void main(String[] args) {
       String x = "Test String";
       System.out.println("test string".equalsIgnoreCase(x)); // true
}

객체/프리미티브를 문자열로 변환

Java 클래스의 인스턴스나 기본 데이터 유형을 문자열 표현으로 변환하려면 다음 메소드를 사용할 수 있습니다 String.valueOf().
public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);
        String human = String.valueOf(new Human("Alex"));

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);
        System.out.println(human);
        /*
        Output:
        1
        12.0
        123.4
        123456
        true
        Person named Alex
         */
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

문자열을 숫자로 변환

문자열을 숫자로 변환해야 하는 경우가 많습니다. 기본 유형 래퍼 클래스에는 정확히 이 목적을 수행하는 메서드가 있습니다. 이 모든 메소드는 구문 분석이라는 단어로 시작됩니다. 아래에서 문자열을 정수( Integer) 및 분수( Double) 숫자로 변환하는 것을 고려해보세요.
public static void main(String[] args) {
    Integer i = Integer.parseInt("12");
    Double d = Double.parseDouble("12.65D");

    System.out.println(i); // 12
    System.out.println(d); // 12.65
}

문자열 컬렉션을 문자열 표현으로 변환

임의의 구분 기호를 통해 일부 문자열 컬렉션의 모든 요소를 ​​문자열 표현으로 변환해야 하는 경우 Java String 클래스의 다음 메서드를 사용할 수 있습니다.
  • join(CharSequence delimiter, CharSequence... elements)
  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
delimiter요소 구분 기호는 어디에 있고 elements문자열 배열/문자열 컬렉션 인스턴스는 어디에 있습니까? 문자열 목록을 세미콜론으로 구분하여 문자열로 변환하는 예를 살펴보겠습니다.
public static void main(String[] args) {
    List<String> people = Arrays.asList(
            "Philip J. Fry",
            "Turanga Leela",
            "Bender Bending Rodriguez",
            "Hubert Farnsworth",
            "Hermes Conrad",
            "John D. Zoidberg",
            "Amy Wong"
    );

    String peopleString = String.join("; ", people);
    System.out.println(peopleString);
    /*
    Output:
    Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong
     */
}

문자열을 문자열 배열로 분할

split(String regex) 이 작업은 The Separator is a string 정규식 메소드에 의해 수행됩니다 regex. 아래 예에서는 이전 예에서 수행한 작업과 반대되는 작업을 수행합니다.
public static void main(String[] args) {
    String people = "Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong";

    String[] peopleArray = people.split("; ");
    for (String human : peopleArray) {
        System.out.println(human);
    }
    /*
    Output:
    Philip J. Fry
    Turanga Leela
    Bender Bending Rodriguez
    Hubert Farnsworth
    Hermes Conrad
    John D. Zoidberg
    Amy Wong
     */
}

줄의 요소 위치 결정

Java 언어에서 String은 문자열에서 문자/하위 문자열의 위치를 ​​결정하는 일련의 메소드를 제공합니다.
  1. indexOf(int ch)
  2. indexOf(int ch, int fromIndex)
  3. indexOf(String str)
  4. indexOf(String str, int fromIndex)
  5. lastIndexOf(int ch)
  6. lastIndexOf(int ch, int fromIndex)
  7. lastIndexOf(String str)
  8. lastIndexOf(String str, int fromIndex)
어디:
  1. ch— 찾고 있는 기호( char)
  2. str- 검색 문자열
  3. fromIndex— 요소를 검색할 위치
  4. 메소드 indexOf- 발견된 첫 번째 요소의 위치를 ​​반환합니다.
  5. 메소드 lastIndexOf- 발견된 마지막 요소의 위치를 ​​반환합니다.
찾고 있는 요소를 찾을 수 없으면 메소드는 -1 행을 반환합니다. A영어 알파벳에서 , K, Z, 문자의 일련 번호를 찾아 보겠습니다 Я. 단, Java에서 문자열의 문자 인덱싱은 0부터 시작한다는 점을 명심하세요.
public static void main(String[] args) {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    System.out.println(alphabet.indexOf('A')); // 0
    System.out.println(alphabet.indexOf('K')); // 10
    System.out.println(alphabet.indexOf('Z')); // 25
    System.out.println(alphabet.indexOf('Я')); // -1
}

문자열에서 하위 문자열 추출

문자열에서 하위 문자열을 추출하기 위해 Java의 String 클래스는 다음 메소드를 제공합니다.
  • substring(int beginIndex)
  • substring(int beginIndex, int endIndex)
요소 위치 지정 및 부분 문자열 추출 방법을 사용하여 경로에서 파일 이름을 가져오는 방법을 살펴보겠습니다.
public static void main(String[] args) {
    String filePath = "D:\\Movies\\Futurama.mp4";
    int lastFileSeparatorIndex = filePath.lastIndexOf('\\');
    String fileName = filePath.substring(lastFileSeparatorIndex + 1);
    System.out.println(fileName); //9
}

문자열을 대문자/소문자로 변환:

String 클래스는 문자열을 대문자와 소문자로 변환하는 메서드를 제공합니다.
  • toLowerCase()
  • toUpperCase()
예제를 사용하여 이러한 방법이 어떻게 작동하는지 살펴보겠습니다.
public static void main(String[] args) {
    String fry = "Philip J. Fry";

    String lowerCaseFry = fry.toLowerCase();
    String upperCaseFry = fry.toUpperCase();

    System.out.println(lowerCaseFry); // philip j. fry
    System.out.println(upperCaseFry); // PHILIP J. FRY
}
이 Java 클래스를 사용한 작업은 JavaRush 온라인 과정의 초기 수준에서 학습됩니다.

추가 소스

String 클래스에 대한 정보는 JavaRush 커뮤니티의 다른 기사에서도 제공됩니다.
  1. Java의 문자열 - 이 문서에서는 Java의 문자열 작업에 대한 몇 가지 기본 사항을 다룹니다.
  2. 자바 문자열. 인터뷰 질문 및 답변, 1부 - 이 기사에서는 주제에 대한 인터뷰 질문에 대해 설명 String하고 설명 및 코드 예제와 함께 질문에 대한 답변도 제공합니다.
  3. Java의 문자열(클래스 java.lang.String) - 이 기사에서는 String 클래스에 대한 심층적인 분석을 제공하고 이 클래스 작업의 복잡성에 대해서도 설명합니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION