자바의 문자열은 String 객체로 생성된다
String은 객체
자바에서 String은 참조형 변수로 분류된다.
즉, 스택 영역이 아닌 힙에서 문자열 데이터가 생성되고 다뤄진다는 말이다
String name = "홍길동"
//첫글자가 대문자!
String 주소 할당 방식
- 리터럴을 이용한 방식
- new 연산자를 이용한 방식
String st1 = "Hello" //문자열 리터럴을 이용한 방식
String st2 = "wold"
String st3 = new String("Hello")
String st4 = new String("wold")
JVM(자바 가상머신) 메모리 내부적인 측면에서 큰 차이가 있다.
Java.lang 패키지 String 함수
equals(), 문자열 비교하기(feat. ==)
String name1 = "홍길동"
String name2 = "홍길동"
// 리터럴 문자열 비교
System.out.println(str1 == str2); // true
String name1 = new String("홀길동")
String name2 = new String("홀길동")
System.out.println(str3 == str4); // false
각자 다른 힘 영역에 저장되기 때문에 false가 나옴
but,
동일한 String 객체든 다른 객체든 상관없이 내부 문자열만 비교하고 싶을 경우에는 equals()를 사용한다
System.out.println(str3.equals(str1)); // true
System.out.println(str3.equals(str4)); // true
equalsIgnoreCase(), 대소문자 구분없이 문자열 비교
boolean equalIgnoreCase = str1.equalsIgnoreCase(str2);
System.out.println(equalIgnoreCase);
// true
carAt(), 문자 추출
특정 위치의 문자를 얻고 싶다면, carAt()
매개값으로 주어진 인덱스(0부터 문자열 길이-1까지의 번호)의 문자를 리턴한다
String subject = "자바 프로그래밍"
Char carValue = subject.char(3);
//프
length(), 문자 길이
문자열에서 문자의 개수를 알고 싶다면 length()
String subject = "자바 프로그래밍"
int length = subject.length();
//8 -> 공백을 포함함
replace(), 문자 대체
특정 문자열을 다른 문자열로 대체하고 싶다면 replace()
String oldStr = "자바 프로그래밍"
String newStr = oldStr.replace("자바", "Java");
System.out.println(newStr);
//Java 프로그래밍
substring(), 문자 잘라내기
문자열에서 특정 위치의 문자열을 잘라내어 가지고 오고 싶다면 substring()
- substring(int x) : x 번째 인덱스에서 끝까지 잘라내기
- substring(int x, int y) : x 번째 인텍스에서, y 번째 인덱스 앞까지 잘라내기
String ssn = "880815-1234567"
String firstNum = ssn.substring(0,6) // 880815
String secondNum = ssn.subString(7) // 1234567
split(), 문자열 분리
여러 개의 문자열로 구성되어 있을 경우 분리해서 쓰고 싶다면, split()
String board = "번호, 제목, 내용, 성명"
String[] arr = board.split(", ");
// ["번호", "제목", "내용" , "설명"] -> 쉼표로 구분해서 분리된 문자열을 배열로 얻을수 있다.
contains(), 문자열 포함여부 확인
String str = "Hello World"
boolean contains = str.contains("World");
System.out.println(contains);
// true
indexOf(), 문자열 찾기
특정 문자열의 위치를 찾고자 할 때 indexOf()
String subject = "자바 프로그래밍"
int index = subject.indexOf("프로그래밍");
// 3
주어진 문자열이 포함되어 있지 않을 경우엔 -1을 리턴한다.
찾고자하는 첫번째 문자의 index를 반환
lastIndexOf(), 특정 문자열 찾기
String Str = "Hello Wolrd"
int lastIndex = str.lastIndexOf('o');
System.out.println(lastIndex);
//8
찾으려고 하는 문자들중 여러개가있을때 마지막 문자의 인덱스 번호를 반환
StartWith(), 문자열 시작여부 확인
String Str = "Hello Wolrd";
boolean startsWith = str.startsWith("Hello");
System.out.println(startsWith);
//true
endWith(), 문자열 끝 여부 확인
String Str = "Hello Wolrd!";
boolean endsWith = str.endsWith("!");
System.out.println(endsWith);
//true
trim(), 문자열 공백 제거
String strWithSpaces = " Hello, World! ";
String trimmedStr = strWithSpaces.trim();
System.out.println(trimmedStr);
// Hello, World!
// 문자열의 양끝의 공백을 제거
toLowerCase() 와 toUpperCase(), 문자열 대소문자 변환
String strWithSpaces = "Hello, World!";
String lowerCaseStr = str.toLowerCase();
System.out.println(lowerCaseStr);
// hello, world!;
// 소문자 변환
String upperCaseStr = str.toUpperCase();
System.out.println(upperCaseStr);
// HELLO, WORLD!
// 대문자 변환
- toLowerCase : 소문자로 변환
- toUpperCase : 대문자로 변환
isempty(), 문자열 빈 값 확인
String emptyStr = "";
boolean isEmpty = emptyStr.isEmpty();
System.out.println(isEmpty);
// true
toCharArray(), 문자열을 문자 배열로 반환
String Str = "Hello Wolrd";
char[] charArray = str.toCharArray();
for (char c : charArray) {
System.out.print(c + " ");
}
// charArray = {H,e,l,l,o,W,o,l,r,d}
'JAVA' 카테고리의 다른 글
[Java] 추상 클래스 abstract (0) | 2024.05.04 |
---|---|
[Java] 싱글톤 패턴 (0) | 2024.05.04 |
[Java] 데이터 타입 분류 (0) | 2024.05.04 |
[Java] 예외 Exception (0) | 2024.05.04 |
[Java] 제네릭 (0) | 2024.05.04 |