String 타입

hellok99·2023년 2월 24일
0

< 문자열을 선언한 변수에 할당하는 방법 >

  • String 변수 = "문자열";
  • String 변수 = new String("문자열");

ex)

	String str1 = "안녕하세요!";

    String str2 = new String("반갑습니다.");

    System.out.println(str1); //안녕하세요!
    System.out.println(str2); //반갑습니다.

str1, str2는 실제 문자열의 값으로 가지고 있는 것이 아니라, 문자열이 존재하는 메모리 공간 상의 주소값을 저장하고 있다.
String 타입의 변수를 참조하면 String 클래스의 메서드인 toString()이 자동으로 호출되기 때문에 주소값이 아니라 문자열이 나오는 것이다.


🔆 String 변수 = "문자열";

String str1 = "안녕";
String str2 = "안녕";
  • 문자열을 String타입의 변수에 직접 할당하는 방식이다.
  • str1과 str2는 동일한 문자열을 두 변수에 할당하고 있기 때문에, 같은 문자열의 참조값을 공유한다.
  • str1 == str2 는 true다.

🔆 String 변수 = new String("문자열");

String str3 = new String("안녕");
String str4 = new String("안녕");
  • String 클래스의 인스턴스를 생성하여 할당하는 방법이다.
  • 문자열의 내용이 같을지라도, 별개의 인스턴스가 따로 생성된다.
  • str3과 str4가 할당받는 인스턴스의 참조값은 서로 다르다. 서로 다른 인스턴스의 주소값을 저장하고 있다.
  • 등가비교연산자인 == 로 str3과 str4를 비교하면 false가 된다. (별개의 인스턴스 , 별개의 주소값을 가지고 있기 때문이다.)
  • .equals()는 .앞의 변수가 저장하고 있는 문자열의 내용과 ()안의 문자열의 내용이 같은지를 비교하는 것이기 때문에 str3.equals(str4)는 true가 된다.

1. charAt() 메서드

해당하는 문자열의 특정 인덱스에 해당하는 문자를 반환한다.
String str = new String("Java");
System.out.println(str.charAt(0)); //J
System.out.println(str.charAt(1)); //a
System.out.println(str.charAt(2)); //v
System.out.println(str.charAt(3)); //a

2. compareTo() 메서드

대소문자 구분하여 문자열을 사전편찬순으로 비교한다.
두 문자열이 같다면 0을 반환한다. 
문자열이 인수로 전달된 문자열보다 작으면 음수, 크면 양수를 반환한다.
	String str = new String("Java");
    System.out.println(str.compareTo("java")); //-32
    System.out.println(str.compareTo("JAVA")); //32
    System.out.println(str.compareTo("Java")); //0
    System.out.println(str.compareToIgnoreCase("jAva")); //0

2.1 compareToIgnoreCase()

대소문자 구분없이 문자열 비교.

3. concat() 메서드

해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열을 반환한다. 
    
String str = new String("Java");
System.out.println(str);    //Java
System.out.println(str.concat("랑 String")); //Java랑 String
System.out.println(str);      //Java

4. indexOf() 메서드

해당하는 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환.
문자열이 포함되어있지 않다면 -1을 반환

String str = new String("Hi Java");
System.out.println(str.indexOf('j')); // -1
System.out.println(str.indexOf('a')); //4
System.out.println(str.indexOf("Java")); //3
System.out.println(str);//Hi Java

5. trim()메서드

해당 문자열의 맨 앞과 맨뒤에 포함된 공백 문자 제거

 String str = new String(" Java     ");
 System.out.println(str.trim() + '|'); //Java|
 

6. toLowerCase()

해당 문자열의 모든 문자를 소문자로 변환

 String str = new String("JAva");
 System.out.println(str.toLowerCase()); //java
 System.out.println(str); //JAva
 

7. toUpperCase()

해당 문자열의 모든 문자를 대문자로 전환

 String str = new String("JAva");
 System.out.println(str.toUpperCase()); //JAVA
 System.out.println(str); //JAva
profile
안녕하세요

0개의 댓글