자바의 문자열 함수 | Java 문자열 [예제 포함]

게시 됨: 2020-12-01

목차

소개

Java는 객체 지향 프로그래밍 지원과 제공되는 데이터 유형에 대한 사전 정의된 기능 때문에 프로그래머들 사이에서 많은 존경을 받았습니다. 문자열은 Java에서 제공하는 인상적인 데이터 유형 중 하나입니다.

그것들은 불변이며 String Constant Pool이라는 별도의 메모리 블록에 있는 힙 영역에 저장됩니다. Java에는 문자열에 대해 미리 정의된 함수가 많이 있습니다. 살펴보겠습니다!

기능

문자()

특정 위치의 문자에 액세스하기 위해 해당 인덱스를 반복하는 루프가 필요하지 않습니다. charAt() 함수가 당신을 위해 열심히 일합니다!. charAt() 함수는 문자열의 특정 위치에 있는 문자를 반환합니다. Java에서는 인덱스가 0부터 시작한다는 점을 기억하십시오.

이 함수는 접근 한정자를 public으로 정의하고 char를 반환합니다. 이 메서드는 정수를 매개 변수로 예상하고 문자열 길이보다 큰 매개 변수를 사용하여 함수에 액세스하면 런타임 예외인 IndexOutOfBounds 예외가 반환됩니다.

String str = " 안녕하세요 " ;

문자 먼저 = str . 문자( 0 );

문자 = str . 문자( 1 );

시스템 . 밖으로 . println(첫 번째 + " " + 두 번째);

위의 스니펫은 첫 번째 변수에 'h' 문자가 할당되고 두 번째 변수에 'e' 문자가 할당되기 때문에 'h e'가 출력됩니다.

compareTo() 및 compareToIgnoreCase()

두 개의 문자열을 비교하는 것은 두 변수의 주소를 확인하고 두 변수의 주소가 같으면 true를 반환하기 때문에 Java의 == 연산자에서는 작동하지 않습니다. 따라서 == 연산자는 문자열의 내용을 비교하는 데 실패합니다. 여기에서 compareTo() 메서드가 실행됩니다.

이 공개 메소드는 비교할 매개변수로 문자열이나 객체를 예상하고 사전식 비교 후 정수 값을 반환합니다. 이 메소드는 대소문자를 구분합니다. 그러나 문자의 소문자와 대문자를 무시하고 비교를 위해 compareToIgnoreCase()를 사용할 수 있습니다.

문자열 str1 = " 안녕하세요 " ;

문자열 str2 = " 안녕하세요 " ;

문자열 str3 = " 안녕하세요 " ;

정수 i1 = str1 . comapreTo(str2);

정수 i2 = str2 . 비교 대상(str3);

정수 i3 = str2 . 비교 대상 무시(str3);

시스템 . 밖으로 . println(i1 + " " i2 + " " + i3);

위의 스니펫은 '1 0 1'을 출력으로 인쇄합니다. 왜냐하면 두 문자열이 동일하기 때문에 변수 i1이 1로 할당되고 변수 i2가 대소문자를 구분하여 문자열을 비교하기 때문에 0이 할당되기 때문입니다. 마찬가지로 변수 i3에는 대문자와 소문자를 무시하여 문자열을 비교하므로 1이 할당됩니다.

연결()

문자열은 변경할 수 없으므로 문자열 값을 편집할 수 없으며 대신 업데이트된 값을 동일한 변수에 다시 할당할 수 있습니다. 두 문자열을 연결하기 위해 concat() 메서드를 사용할 수 있습니다. 이 메서드는 연결될 매개변수로 문자열을 예상하고 연결된 새 문자열을 반환합니다.

문자열 s1 = " 첫 번째 " ;

문자열 s2 = " " ;

시스템 . 밖으로 . println(s1 . concat(s2));

위의 스니펫은 "first second" 문자열을 출력합니다.

읽기: JavaBeans 속성 및 이점: 어떻게 활용해야 합니까?

포함()

문자열이 다른 문자열의 하위 시퀀스로 존재하는지 확인하는 것은 이제 케이크워크입니다. Java의 contains() 메소드는 부울 공개 함수이며 문자열에 일련의 문자가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다. 이 메서드는 문자 시퀀스를 매개변수로 예상하고 null 객체가 매개변수로 전달되면 NullPointerException을 반환합니다.

String s1 = " 안녕하세요 " ;

시스템 . 밖으로 . println(s1 . 포함( " " ) ); //라인1

시스템 . 밖으로 . println(s1 . 포함( "" )); //라인2

시스템 . 밖으로 . println(s1 . 포함( null )); //라인3

위의 스니펫은 문자열에 "the" 시퀀스가 ​​있기 때문에 1행에 대해 True를 인쇄하고, 빈 시퀀스가 ​​기본적으로 True를 반환하기 때문에 2행에도 마찬가지로 True를 인쇄합니다. 그리고 3번째 줄은 null이 매개변수로 전달되었기 때문에 NullPointerException을 던졌습니다.

indexOf()

우리는 주어진 인덱스에 있는 문자를 반환하는 자바 함수를 보았지만 주어진 문자가 처음 나타나는 인덱스를 원하면 어떻게 될까요? 긴장을 풀고 indexOf() 함수가 작업을 수행합니다. 이 함수는 4가지 다른 서명으로 내부적으로 재정의됩니다. 그것들을 살펴보겠습니다.

String s1 = " 이봐 저기, 저기, 저기, 저기, 저기 " ;

시스템 . 밖으로 . println(s1 . indexOf( " 거기 " )); //라인 1

시스템 . 밖으로 . println(s1 . indexOf( " 거기 " , 5 )); //라인 2

시스템 . 밖으로 . println(s1 . indexOf( ' T ' )); //라인 3

시스템 . 밖으로 . println(s1 . indexOf( ' T ' , 16 )); //라인 4

위의 스니펫에서 line1에서 호출된 함수는 문자열을 예상하고 지정된 문자열이 처음 나타나는 시작 인덱스를 반환하며 이 경우 4를 인쇄합니다. line2에서 호출된 함수는 매개변수로 정수와 함께 문자열을 예상합니다. 이제 이 정수는 주어진 문자열에 대한 검색이 해당 인덱스에서 시작되는 시작 인덱스를 참조하며 이 경우 37을 인쇄합니다.

line3에서 호출된 함수는 매개변수로 문자를 예상하고 주어진 문자의 첫 번째 발생을 반환하며 이 경우 15를 인쇄합니다. 유사하게, line4에 있는 함수는 문자와 정수를 기대합니다.

정수가 시작 인덱스를 나타내고 주어진 문자 검색이 해당 문자에서 시작되는 경우 이 경우 26을 인쇄합니다. 위의 스니펫에서 볼 수 있는 이 함수는 완전히 대소문자를 구분한다는 것을 기억하십시오.

비었다()

이 기능은 간단한 작업을 수행하지만 프로그래머의 관점에서 매우 유용한 작업입니다. 이 부울 함수는 문자열이 비어 있으면 True를 반환하고 그렇지 않으면 False를 반환합니다. 이 함수는 실행 흐름을 방해하는 빈 문자열에 대한 예외를 throw하는 함수가 거의 없기 때문에 문자열에 대한 작업을 수행하기 전에 문자열이 비어 있는지 확인하는 데 도움이 됩니다.

String s1 = " 안녕하세요 " ;

문자열 s2 = "" ;

시스템 . 밖으로 . println( s1.isEmpty()) ; //라인1

시스템 . 밖으로 . println( s2.isEmpty()) ; //라인2

위 스니펫은 line1에 대해 False를, line2에 대해 True를 인쇄합니다.

길이()

문자열의 길이를 찾는 것은 더 이상 지루한 작업이 아닙니다. Java의 length() 함수는 주어진 문자열의 길이를 반환합니다. 빈 문자열이 매개변수로 전달되면 0을 반환합니다.

문자열 s1 = " abcdefghijklmnopqrstuvwxyz " ;

시스템 . 밖으로 . println(s1 . 길이());

위의 코드는 26을 출력합니다.

바꾸다()

첫 번째 시퀀스만 반환하는 indexOf() 함수와 달리, replace() 함수는 지정된 모든 문자를 주어진 새 문자로 바꾸고 새 문자열을 반환합니다. 이 공용 함수는 매개변수로 c1 및 c2와 같은 두 개의 문자를 예상합니다. 여기서 c1과 동일한 모든 문자를 검색하고 c2로 바꿉니다.

문자열 s1 = " 안녕하세요 " ;

시스템 . 밖으로 . println(s1 . replace( ' l ' , ' p ' ));

이 함수는 대소문자를 구분하므로 위의 스니펫은 "heppoHELLO"를 인쇄한다는 것을 기억하십시오.

toLowerCase() 및 toUpperCase()

문자열을 소문자로 또는 그 반대로 변환하는 것은 Java에서 재미있는 작업입니다. 이 작업에는 한 줄의 코드가 필요하며 toLowerCase(), toUpperCase() 함수는 아티스트입니다.

이러한 공용 함수는 매개변수를 필요로 하지 않으며 업데이트된 소문자 및 대문자가 있는 새 문자열을 반환합니다.

문자열 s1 = " 안녕하세요 " ;

시스템 . 밖으로 . println( s1.toUpperCase()) ; //라인1

시스템 . 밖으로 . println( s1.toLowerCase()) ; //라인2

위의 스니펫에서 line2는 "hey there"를 인쇄하고 line1은 "HEY THERE"를 인쇄합니다.

학습: Java의 이벤트 처리: 이것이 무엇이며 어떻게 작동합니까?

손질()

문자열에서 후행 및 선행 공백을 제거하는 순진한 접근 방식은 문자열을 반복하고 공백인 경우 해당 문자를 제거하는 것이지만 최적의 방법이 있습니다. trim() 함수는 문자열의 모든 선행 및 후행 공백을 제거하고 새 문자열을 반환합니다. 이 공개 함수는 매개변수를 기대하지 않습니다.

문자열 s1 = " 안녕하세요 " ;

시스템 . 밖으로 . println(s1.trim ()) ;

위의 스니펫은 후행 공백과 선행 공백을 제거한 후 새 문자열인 "Hey There"를 인쇄합니다.

결론

우리는 자바의 몇 가지 문자열 함수를 살펴보고 어떻게 작동하는지, 무엇을 기대하고, 무엇을 반환하는지 이해했습니다. 몇 가지 함수의 재정의된 서명을 살펴보고 적절한 이해를 위해 샘플 코드 조각을 살펴보았습니다. 이제 몇 가지 기능을 알았으므로 필요할 때마다 활용하십시오.

Java, OOP 및 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9 + 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

미래의 직업을 위한 준비

업계에서 신뢰할 수 있는 학습 - 업계에서 인정하는 인증.
더 알아보기