String
- 문자열을 표현하는 객체다.
- 문자열(String)은 불변객체다.
- 한번 생성된 문자열은 절대로 변하지 않는다.
- String객체는 문자열과 관련된 다양한 기능들을 제공한다.
String객체를 생성하는 방법
String str = "abc"; // 문자열 리터럴로 생성
String str2 = new String("abc"); // new 연산자로 생성
// String 클래스의 클래스 메소드로 생성
String str3 = String.valueOf(true); // "true"
String str3 = String.valueOf(10000); // "10000"
String str3 = String.valueOf(3.14); // "3.14"
String의 주요 메소드
int length()
- 문자열의 길이를 반환한다.
String s1 = "Hi";
String str2 = "abc abc abc";
System.out.println("길이 : " + s1.length()); // 길이 : 7
System.out.println("길이 : " + str2.length()); // 길이 : 11 공백도 카운트
boolean isEmpty()
- 문자열의 길이가 0인 경우 true를 반환한다
String str3 = "";
String str4 = " ";
String str5 = "안녕하세요";
System.out.println("빈 문자열인가 " + str3.isEmpty()); // true
System.out.println("빈 문자열인가 " + str4.isEmpty()); // false
System.out.println("빈 문자열인가 " + str5.isEmpty()); // false
boolean isBalnk()
- 빈 문자열이거나 공백으로만 구성된 문자열인 경우 true를 반환
System.out.println("빈 문자열인가 " + str3.isBlank()); // true
System.out.println("빈 문자열인가 " + str4.isBlank()); // true
System.out.println("빈 문자열인가 " + str5.isBlank()); // false
boolean contains(CharSequence s)
- 지정된 문자열이 포함되어 있으면 true를 반환한다.
String str6 = "HTA";
System.out.println("H 문자열을 포함하는가 " + str6.contains("H")); // true
boolean startsWith(String prefix)
- 문자열이 지정된 문자열로 시작하면 true를 반환한다.
String str7 = "http://naver.com";
String str8 = "google.com";
String str9 = "http://index.com";
System.out.println("문자열이 http로 시작하는가 "+ str7.startsWith("http")); // true
System.out.println("문자열이 http로 시작하는가 "+ str8.startsWith("http")); // false
System.out.println("문자열이 http로 시작하는가 "+ str9.startsWith("http")); // true
boolean endsWith(String suffix)
- 문자열이 지정된 문자열로 끝나면 true를 반환한다.
String str10 = "sample.hwp";
String str11 = "sample.xlsx";
String str12 = "sample.xlsx";
System.out.println("엑셀파일인가 " + str10.endsWith("xlsx")); // false
System.out.println("엑셀파일인가 " + str11.endsWith("xlsx")); // true
System.out.println("엑셀파일인가 " + str12.endsWith("xlsx")); // true
boolean equals(Object str)
- 지정된 문자열과 문자열의 내용을 비교해서 일치하면 true를 반환한다
- 대소문자를 구분한다
- Object의 equals(Object obj)를 재정의한 메소드다. 단, 문자열의 내용을 비교하도록 정의한 메소드다.
String str1 = "홍길동";
String str2 = "홍길동";
String str3 = new String("홍길동");
String str4 = new String("홍길동");
System.out.println("문자열 내용 비교 :" + str1.equals(str2)); // true
System.out.println("문자열 내용 비교 :" + str3.equals(str4)); // true
System.out.println("문자열 내용 비교 :" + str1.equals(str3)); // true
String str5 = "Hello";
String str6 = "hello";
System.out.println("대소문자 구분 :" + str5.equals(str6)); // false
boolean equalsIgnoreCase(String str)
- 지정된 문자열과 문자열의 내용을 비교해서 일치하면 true를 반환한다
- 단, 문자가 대소문자를 제공하는 경우 대소문자 상관없이 비교한다
String str5 = "Hello";
String str6 = "hello";
System.out.println("대소문자 구분 :" + str5.equals(str6)); // false
System.out.println("대소문자 무시 :" + str5.equalsIgnoreCase(str6)); // true
String substring(int beginIndex)
- 지정된 시작위치 ~ 문자열 끝 범위에 해당하는 문자열로 구성된 새 문자열을 반환한다
- 문자열의 인덱스는 0부터 시작한다.
String str1 = "유서담";
String str2 = str1.substring(1); // 서담
String substring(int beginIndex, int lastIndex)
- 지정된 시작위치 ~ 끝위치 범위에 해당하는 문자열로 구성된 새 문자열을 반환한다
- beginIndex는 포함, endIndex는 포함되지 않는다
String str1 = "970212-1234567";
String str2 = str1.substring(0,2);
System.out.println("태어난 해 : " + str2); // 태어난 해 : 97
String str3 = str1.substring(2, 6);
System.out.println("생일 : " + str3); // 생일 : 0212
String toUpperCase()
- 문자열의 내용을 참조해서 대문자로만 구성된 새 문자열 객체를 반환한다
String str1 = "Hello, Java World!";
String str2 = str1.toUpperCase();
System.out.println("새 문자열 :" + str2); // 새 문자열 :HELLO, JAVA WORLD!
String toLowerCase()
- 문자열의 내용을 참조해서 소문자로만 구성된 새 문자열 객체를 반환한다
String str1 = "Hello, Java World!";
String str3 = str1.toLowerCase();
System.out.println("새 문자열 :" + str3); // 새 문자열 :hello, java world!
String replace(String searchStr, String replaceStr)
- searchStr에 해당하는 문자열이 replaceStr로 대체된 새문자열을 반환한다
String str4 = "The red house's color is red";
String str5 = str4.replace("red", "green");
System.out.println("새 문자열 : " + str5); // The green house's color is green
trim과 strip 시리즈
String trim()
- 문자열에서 불필요한 좌우 공백이 제거된 새 문자열을 반환한다
String strip()
- 문자열에서 불필요한 좌우 공백이 제거된 새 문자열을 반환한다
String stripLeading()
- 문자열의 왼쪽 공백이 제거된 새 문자열을 반환한다
String stripTrailing()
- 문자열의 오른쪽 공백이 제거된 새 문자열을 반환한다
String str6 = " 안녕하세요. 반갑습니다. ";
String str7 = str6.trim();
String str8 = str6.strip();
String str9 = str6.stripLeading();
String str10 = str6.stripTrailing();
System.out.println("원본 문자열 : ["+str6+"]");
System.out.println("trim 적용 문자열 : ["+str7+"]");
System.out.println("strip 적용 문자열 : ["+str8+"]");
System.out.println("stripLeading 적용 문자열 : ["+str9+"]");
System.out.println("stripTrailing 적용 문자열 : ["+str10+"]");
원본 문자열 : [ 안녕하세요. 반갑습니다. ]
trim 적용 문자열 : [안녕하세요. 반갑습니다.]
strip 적용 문자열 : [안녕하세요. 반갑습니다.]
stripLeading 적용 문자열 : [안녕하세요. 반갑습니다. ]
stripTrailing 적용 문자열 : [ 안녕하세요. 반갑습니다.]
indexOf 시리즈
char indexOf(String str)
- 문자열에서 지정된 문자열이 처음으로 등장하는 위치를 반환한다
- 지정된 문자열을 찾을 수 없으면 -1을 반환한다
int indexOf(String str, int fromIndex)
- fromIndex에 지정된 위치부터 문자열을 검색해서 등장위치를 반환한다
int lastIndexOf(String str)
- 문자열에서 지정된 문자열이 마지막으로 등장하는 위치를 반환한다
- 지정된 문자열을 찾을 수 없으면 -1을 반환한다
char charAt(int index)
- 문자열에서 지정된 위치의 문자하나를 반환한다
String str1 = "02)7894-1234";
String str2 = "041)1111-9999";
// indexOf(")")는 문자열에서 ")"가 등장하는 위치값(인덱스)를 반환한다.
String str3 = str1.substring(0, str1.indexOf(")"));
String str4 = str2.substring(0, str2.indexOf(")"));
System.out.println("국번 : " + str3); // 국번 : 02
System.out.println("국번 : " + str4); // 국번 : 041
String str5 = "abcdefg";
char ch1 = str5.charAt(0);
char ch2 = str5.charAt(1);
System.out.println("문자 : "+ ch1); // 문자 : a
System.out.println("문자 : "+ ch2); // 문자 : b
String[ ] split(String delim)
- 문자열을 지정된 구분문자로 잘라서 잘려진 각 문자열을 배열에 담아 반환한다
String str = "홍길동,김유신,고길동";
String[] items = str.split(",");
System.out.println(items[0]); // 홍길동
System.out.println(items[1]); // 김유신
System.out.println(items[2]); // 고길동
int compareTo(String other)
- 지정된 다른 문자와 사전 순서대로 비교한다
- 배열이나 콜렉션에 저장된 문자열을 정렬할 때 사용된다
'Java' 카테고리의 다른 글
Java_StringBuilder/Buffer, Date 클래스, Math 클래스 (0) | 2023.11.16 |
---|---|
Java_Wrapper 클래스 (0) | 2023.11.16 |
Java_Object 클래스, Java API (0) | 2023.11.14 |
Java_접근제어자, 내부클래스(oop) (0) | 2023.11.13 |
Java_인터페이스(oop) (1) | 2023.11.10 |