#String 타입
String 클래스 타입을 사용해 문자열을 다룬다.
큰따옴표("")로 문자열을 감싸 사용한다.
(1)변수를 선언하여 문자열 리터럴을 할당하는 경우
: (String name = "pilgrim")
(2)String클래스의 인스턴스를 생성하는 방법
: (String name2 = new String("pilgrim")
//(1)변수를 선언하여 문자열 리터럴을 할당하는 경우
String name = "pilgrim";
//(2)String클래스의 인스턴스를 생성하는 방법
String name2 = new String("pilgrim");
#직접할당과 인스턴스 생성의 차이점
(1)과 (2)의 방법 모두 저장하고 있는 것은 문자열이 저장된 메모리 주소이다.
출력시 자동으로 호출되는 String 클래스의 메서드(toString)를 통해 주소값을 해당하는 문자열로 변환시켜준다.
차이점은 직접할당의 경우, 같은 문자열을 할당하면 메모리 주소를 공유한다.
인스턴스를 생성할 경우, 문자열의 내용은 같을 지라도 별개의 인스턴스가 따로 생성된다.
즉 같은 문자열을 할당한 인스턴스일지라도 메모리 주소는 각각 생성된다.
ex. String alphbet1 = a 와 String alphbet2 = a 는 변수의 이름은 같지만,
변수가 지정된 메모리 주소는 같다.
(2)의 방법(인스턴스생성)으로 선언한
String fruit = new String ("apple") ; 와 String fruit2 = new String ("apple") 는 위와 마찬가지로 출력값은 같지만
출력값(리터럴)이 지정된 메모리 주소는 다르다.
String alphbet1 = a;
String alphbet2 = a;
//변수의 이름은 다르지만, 출력값과 변수가 지정된 메모리 주소는 같다.
//반면 인스턴스를 생성하여 선언한
String fruit = new String ("apple");
String fruit2 = new String ("apple");
//는 출력값은 같지만
//리터럴이 지정된 메모리 주소는 다르다.
#String 클래스의 메서드
:String 클래스에서 다루는 문자열을 조작할 수 있는 기능들.
(1) length() 메서드
: 문자열의 길이를 리턴하는 메서드;
String blog = "pilgrim"
System.out.printf(blog.length()); // 출력값은 7이다.
(2) charAt() 메서드
: 해당 문자열의 특정 인덱스에 해당하는 문자를 반환하는 메서드.
*문자열의 가장 첫번째 인덱스의 숫자는 0이다.
String blog = "pilgrim"
System.out.printf(blog.charAt(0)); // 출력값은 첫번째 글자 p이다.
System.out.printf(blog.charAt(6)); // 출력값은 마지막 글자 m이다.
(3) compareTo() / compareToIgnoreCase() 메서드
: 문자열과 인수로 전달된 문자열을 비교하는 메서드. compareTo는 대소문자를 구분하여 비교하고,
compareToIgnoreCase()는 대소문자를 구분하지 않고 비교한다.
비교한 문자열이 같다면 0을, 문자열이 인수로 전달된 문자열보다 작으면 음수를, 크면 양수를 반환한다.
(4) concat() 메서드
: 문자열과 인수로 전달된 문자열을 추가한 새로운 문자열을 반환하는 메서드
(5) indexOf() 메서드
: 해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환하는 메서드.
문자열에 문자나 문자열이 없다면 -1을 반환한다.
(6) trim() 메서드
: 문자열 맨앞과 맨뒤에 포함된 모든 공백을 제거해주는 메소드
(7) toLowerCase() / toUpperCase()
: toLowerCase는 문자열의 모든 문자를 소문자로 변환시켜준다.
toUpperCase는 문자열의 모든 문자를 대문자로 변환시켜준다.
'개발지 > Today I learn' 카테고리의 다른 글
[0710] 자바 기초 8 (연산자) (0) | 2023.07.12 |
---|---|
[0707] 자바 기초 7 (StringTokenizer, StringBuilder, StringBuffer) (0) | 2023.07.11 |
[0705] 자바 기초 5 (논리 타입과 문자 타입, 자동 타입 변환) (0) | 2023.07.07 |
[0704] 자바 기초 4 (정수타입과 실수타입) (0) | 2023.07.05 |
[0703] 자바 기초 3 (타입과 리터럴) (0) | 2023.07.04 |