ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java.lang 패키지 - String 클래스 메서드
    백엔드/자바 2020. 8. 12. 18:31

    String은 다양한 메서드를 제공한다.

    charAt( )

    형식 : 변수명.charAt( 인덱스넘버 )

     

    인덱스 넘버로 원하는 문자 찾기

     

    public static void main(String[] args) {
    
    	String A = "강아지는 멍멍합니다";
    
    	A.charAt(5);
    	A.charAt(6);
        
    	System.out.println(A.charAt(5)); // "멍" 출력
    	System.out.println(A.charAt(5)); // "멍" 출력
        
    }

    compareTo( )

    형식 : A.compareTo(B)

     

    A와 B 객체 비교하여 음수, 양수, 0을 반환한다.

     

    A를 기준으로 B를 비교했을 때 음수가 나오면 A가 사전상 순서가 앞에 있다는 것.

    A를 기준으로 B를 비교했을 때 양수가 나오면 A가 사전상 순서가 뒤에 있다는 것.

    A를 기준으로 B를 비교했을 때 0가 나오면 A와 B의 사전상 순서가 같다는 것.

     

    아마도 이러한 음,양 기준은 해당 문자를 유니코드, 아스키코드 등으로 바꿨을 때 숫자에서 서로를 더하고 뺀 결과물로 보여짐.

     

    public static void main(String[] args) {
    
    	String A = "강아지는 멍멍합니다";
    	String B = "고양이는 야옹야옹합니다";
    
    	A.compareTo(B);  // A와 B 객체를 비교
    
    	System.out.println(A.compareTo(B));
    	// 음수를 출력함.
    	// 음수는 A가 B보다 사전상 순서가 앞에 있다는 것.
    	// 양수는 A가 B보다 사전상 순서가 뒤에 있다는 것.
        
    }

    Cotain( )

    형식 : A.Contain( "찾으려는 텍스트" )

     

    A안에 특정 텍스트가 있는지 확인한다.

     

    찾으려는 텍스트가 문자열에 있다면 true를 없다면 false를 돌려준다.

     

    public static void main(String[] args) {
    	
        String A = "강아지는 멍멍합니다";
        
        A.contains("강아지")
        
        System.out.println(A.contains("강아지")); // true 출력
        
        }

    equals( )

    형식 : A.equals(B)

     

    A와 B의 문자열 내용을 비교한다.

     

    A객체와 B객체가 가진 문자열이 같다면 true 반환 / 다르다면 false 반환.

     

    public static void main(String[] args) {
    
    	String A = "강아지는 멍멍합니다";
    	String B = "고양이는 야옹야옹합니다";
    
    	A.equals(B);  // A와 B 객체를 비교
    
    	System.out.println(A.equals(B));  // false 출력
        
    }

    indexOf( )

    형식 : A.indexOf( "찾고자 하는 텍스트" )

    형식 : A.indexOf( "찾고자 하는 텍스트", 인덱스 넘버 )

     

    A객체의 문자열에 찾고자하는 텍스트가 있으면 문자열의 인덱스로 해당 텍스트의 위치를 알려준다.

     

    indexOf ( )는 두 가지 종류가 있다.

     

    파라미터에 텍스트만 넣으면 전체 문자열에서 가장 먼저 나오는 텍스트의 인덱스 넘버만 전달해준다.

     

    파라미터에 텍스트와 숫자를 넣으면 해당 인덱스 넘버 이후의 문자열 중에 가장 먼저 나오는 텍스트의 위치를 인덱스 넘버로 전달한다.

     

    public static void main(String[] args) {
    	
        String A = "고양이는 야옹야옹합니다";
        
        A.indexOf("야옹")
        A.indexOf("야옹", 6)
        
        System.out.println(A.indexOf("야옹"));  // 처음 '야옹'이 나오는 5 출력
        System.out.println(A.indexOf("야옹", 6));  // 인덱스 6 이후 첫 '야옹'이 나오는 7 출력
        
        }

    lastIndexOf( )

    형식 : A.lastIndexOf( "찾고자 하는 텍스트" )

     

    문자열의 뒤에서부터 찾고자 하는 텍스트의 위치를 찾아줌

     

    해당 메서드는 indexOf와 달리 문자의 뒤에서부터 찾고자 하는 텍스트의 위치를 인덱스 넘버로 전달한다.

     

    public static void main(String[] args) {
    	
        String A = "고양이는 야옹야옹합니다";
        
        A.lastIndexOf("야옹")
        
        System.out.println(A.lastIndexOf("야옹"));
        // 문자열의 뒤에서부터 탐색해 가장 먼저 '야옹'이 나오는 7 출력
        
        }

    length( )

    형식 : A.length()

     

    해당 메서드는 문자열의 길이를 세서 돌려준다.

     

    public static void main(String[] args) {
    
    	String A = "강아지는 멍멍합니다";
    
    	A.length();  // A객체 문자열의 수를 샌다.
    
    	System.out.println(A.length());  // 10 출력
        
    }

    replace( , )

    형식 :  A.replace( "문자열 안의 텍스트", "바꾸어 넣고 싶은 텍스트" )

     

    문자열 안의 텍스트를 바꾸고 싶을 때 쓴다.

     

    원래는 replaceAll( )이라는 메서드도 존재한다.

     

    하지만 일반적인 상황에선 replace만 써도 해당 텍스트 내의 모든 동일 텍스트를 교체할 수 있다.

     

    public static void main(String[] args) {
    	
        String A = "고양이는 야옹야옹합니다";
        
        A.replace("야옹", "냥냥")
        
        System.out.println(A.replace("야옹", "냥냥"));
        // "고양이는 냥냥냥냥합니다"로 출력
        
        }

    replaceFirst( , )

    형식 : A.replaceFirst( "문자열 안의 텍스트", "바꾸어 넣고 싶은 텍스트" )

     

    바꾸길 원하는 텍스트와 동일한 텍스트가 문자열에 많이 있다면 그 중에서 첫 번째 것만 바꿔준다.

     

    public static void main(String[] args) {
    	
        String A = "고양이는 야옹야옹합니다";
        
        A.replaceFirst("야옹", "냥냥")
        
        System.out.println(A.replace("야옹", "냥냥"));
        // "고양이는 냥냥야옹합니다"로 출력
        
        }

    split( )

    형식 : A.split( "분리자" )

     

    입력한 구분자를 기준으로 문자열을 분리하여 문자열 배열에 담아 반환한다.

     

    split()함수는 분리자를 어떻게 넣느냐에 따라서 문자열을 자르는 방식이 달라진다.

     

    1. 문자열 내에 있는 기호를 분리자로 쓸 경우

     

    이 경우 기호를 기준으로 나머지 문자들이 배열에 잘 담아진다.

     

    public static void main(String[] args) {
    	
        String A = "Hard,Noraml,Easy";
        
        String test [] = A.split(","); // 문자열 내 쉼표 (,)를 분리자로 지정
        
        for(String a: test) System.out.println(a);
        // "Hard"
        // "Normal"
        // "Easy"
        // 배열 순서대로 출력
        
        }

     

    2. 문자열 내에 없는 기호를 분리자로 쓸 경우

     

    이 경우 기호를 기준으로 원래 있던 문자열을 분리하지 않고 통째로 저장된다.

     

    public static void main(String[] args) {
    	
        String A = "Hard,Noraml,Easy";
        
        String test [] = A.split("&"); // 문자열 내에 없는 기호 &(&)을 분리자로 지정
        
        for(String a: test) System.out.println(a);
        // "Hard,Noraml,Easy" 원래 문자열 그대로 출력
        
        }

     

    3. 공백상태를 분리자로 쓸 경우

     

    이 경우 모든 문자가 한 글자씩 쪼개져서 배열에 저장된다.

     

    public static void main(String[] args) {
    	
        String A = "Hard,Noraml,Easy";
        
        String test [] = A.split(""); // 별도 기호없이 공백으로 지정
        
        for(String a: test) System.out.println(a);
        
        // "H"
        // "a"
        // "r"
        // "d"
        // ","
        // ...중간 생략...
        // "e"
        // "a"
        // "s"
        // "y"
        // 한글자씩 잘라서 배열에 저장된다.
        
        }

    substring( )

    형식: A.substring( 시작인덱스 )

    형식: A.substring( 시작인덱스, 끝나는인덱스)

     

    인덱스를 입력하여 원하는 만큼 문자열을 잘라낼 수 있다.

     

    시작 인덱스 하나만 입력하면 인덱스를 기준으로 뒤의 모든 문자열을 포함하여 반환한다.

     

    시작 인덱스와 끝나는 인덱스를 입력하면 시작인덱스의 문자부터 끝 인덱스까지의 문자를 반환한다.

     

    public static void main(String[] args) {
    
        String A = "강아지는 멍멍합니다";
        
        A.substring(5)
        A.substring(5,10)
        
        System.out.println(A.substring(5));  // "멍멍합니다" 출력
        System.out.println(A.substring(5,10));  // "멍멍합니다" 출력
        
    }

     

Designed by Tistory.