문자열에 'Java'가 포함되어 있는지: true
'Java'의 첫번째 인덱스: 7
인덱스 10부터 'Java'의 인덱스: 24
'Java'의 마지막 인덱스: 24
주요 메서드 목록
- String 클래스는 문자열을 편리하게 다루기 위한 다양한 메서드를 제공한다.
- 메서드를 외우기 보다는 필요할 때 검색하거나 API 문서를 통해서 원하는 기능을 찾는 것이 좋다.
(밑에서 자주 사용하는 기능 위주로 나열했습니다)
문자열 정보 조회
public class StringInfoMain {
public static void main(String[] args) {
String str = "Hello, Java!";
System.out.println("문자열의 길이: " + str.length());
System.out.println("문자열이 비어 있는지: " + str.isEmpty()); // ""
System.out.println("문자열이 비어 있거나 공백인지: " + str.isBlank()); // "" or " "
System.out.println("문자열이 비어 있거나 공백인지: " + " ".isBlank());
char c = str.charAt(7);
System.out.println("7번 인덱스 문자: " + c);
}
}
문자열의 길이: 12
문자열이 비어 있는지: false
문자열이 비어 있거나 공백인지: false
문자열이 비어 있거나 공백인지: true
7번 인덱스 문자: J
문자열 비교
public class StringComparisonMain {
public static void main(String[] args) {
String str1 = "Hello, Java!"; // 대문자 일부 있음
String str2 = "hello, java!"; // 대문자 없음
String str3 = "Hello, World!";
System.out.println("str1 equals str2: " + str1.equals(str2));
System.out.println("str1 equals str2: " + str1.equalsIgnoreCase(str2));
System.out.println("'b' compareTo 'a': " + "b".compareTo("a"));
System.out.println("'a' compareTo 'b': " + "a".compareTo("b"));
System.out.println("'c' compareTo 'a': " + "c".compareTo("a"));
System.out.println("str1 compareTo str3: " + str1.compareTo(str3));
System.out.println("str1 compareToIgnoreCase str2: " + str1.compareToIgnoreCase(str2));
System.out.println("str1 start with 'Hello': " + str1.startsWith("Hello"));
System.out.println("str1 end with 'Java!': " + str1.endsWith("Java!"));
}
}
str1 equals str2: false
str1 equals str2: true
'b' compareTo 'a': 1
'a' compareTo 'b': -1
'c' compareTo 'a': 2
str1 compareTo str3: -13
str1 compareToIgnoreCase str2: 0
str1 start with 'Hello': true
str1 end with 'Java!': true
문자열 검색
public class StringSearchMain {
public static void main(String[] args) {
String str = "Hello, Java! Welcome to Java world.";
System.out.println("문자열에 'Java'가 포함되어 있는지: " + str.contains("Java"));
System.out.println("'Java'의 첫번째 인덱스: " + str.indexOf("Java"));
System.out.println("인덱스 10부터 'Java'의 인덱스: " + str.indexOf("Java", 10));
System.out.println("'Java'의 마지막 인덱스: " + str.lastIndexOf("Java"));
}
}
문자열에 'Java'가 포함되어 있는지: true
'Java'의 첫번째 인덱스: 7
인덱스 10부터 'Java'의 인덱스: 24
'Java'의 마지막 인덱스: 24
문자열 조작 및 변환
public class StringChangeMain1 {
public static void main(String[] args) {
String str = "Hello, Java! Welcome to Java";
System.out.println("인덱스 7부터의 부분 문자열: " + str.substring(7));
System.out.println("인덱스 7부터의 부분 문자열: " + str.substring(7, 12));
System.out.println("문자열 결합: " + str.concat("!!!"));
System.out.println("'Java'를 'World'로 대체: " + str.replace("Java", "World"));
System.out.println("첫 번째 'Java'를 'World'로 대체: " + str.replaceFirst("Java", "World"));
}
}
인덱스 7부터의 부분 문자열: Java! Welcome to Java
인덱스 7부터의 부분 문자열: Java!
문자열 결합: Hello, Java! Welcome to Java!!!
'Java'를 'World'로 대체: Hello, World! Welcome to World
첫 번째 'Java'를 'World'로 대체: Hello, World! Welcome to Java
public class StringChangeMain2 {
public static void main(String[] args) {
String strWithSpaces = " Java Programing ";
System.out.println("소문자로 변환: " + strWithSpaces.toLowerCase());
System.out.println("소문자로 변환: " + strWithSpaces.toUpperCase());
System.out.println("공백 제거(trim): " + strWithSpaces.trim());
System.out.println("공백 제거(strip): " + strWithSpaces.strip()); // Java11
System.out.println("공백 제거(strip): " + strWithSpaces.stripLeading()); // 앞 부분 제거
System.out.println("공백 제거(strip): " + strWithSpaces.stripTrailing()); // 뒷 부분 제거
}
}
public class StringChangeMain2 {
public static void main(String[] args) {
String strWithSpaces = " Java Programing ";
System.out.println("소문자로 변환: " + strWithSpaces.toLowerCase());
System.out.println("소문자로 변환: " + strWithSpaces.toUpperCase());
System.out.println("공백 제거(trim): " + strWithSpaces.trim());
System.out.println("공백 제거(strip): " + strWithSpaces.strip()); // Java11
System.out.println("앞 부분 공백 제거(strip): " + strWithSpaces.stripLeading());
System.out.println("뒷 부분 공백 제거(strip): " + strWithSpaces.stripTrailing());
}
}
소문자로 변환: java programing
소문자로 변환: JAVA PROGRAMING
공백 제거(trim): Java Programing
공백 제거(strip): Java Programing
앞 부분 공백 제거(strip): Java Programing
뒷 부분 공백 제거(strip): Java Programing
public class StringSplitJoinMain {
public static void main(String[] args) {
String str = "Apple,Banana,Orange";
// split()
String[] splitStr = str.split(",");
for (String s : splitStr) {
System.out.println(s);
}
// join()
String joinedStr = String.join("-", "A", "B", "C");
System.out.println("연결된 문자열: " + joinedStr);
// 문자열 배열 연결
String result = String.join("-", splitStr);
System.out.println("result = " + result);
}
}
Apple
Banana
Orange
연결된 문자열: A-B-C
result = Apple-Banana-Orange
기타 유틸리티
public class StringUtilsMain1 {
public static void main(String[] args) {
int num = 100;
boolean bool = true;
Object obj = new Object();
String str = "Hello Java!";
// valueOf 메서드
String numString = String.valueOf(num);
System.out.println("숫자의 문자열 값: " + numString);
String boolString = String.valueOf(bool); // "true"
System.out.println("boolean의 문자열 값: " + boolString);
String objString = String.valueOf(obj);
System.out.println("객체의 문자열 값: " + objString);
// 문자 + x => 문자
String numString2 = "" + num;
System.out.println("빈 문자열 + num: " + numString2);
// toCharArray 메서드
char[] strCharArray = str.toCharArray();
System.out.println("문자열을 문자 배열로 변환: " + strCharArray); // 객체값 반환
System.out.println(strCharArray);
for (char c : strCharArray) {
System.out.print(c);
}
}
}
숫자의 문자열 값: 100
boolean의 문자열 값: true
객체의 문자열 값: java.lang.Object@4e50df2e
빈 문자열 + num: 100
문자열을 문자 배열로 변환: [C@1d81eb93
H
e
l
l
o
J
a
v
a
!
public class StringUtilsMain2 {
public static void main(String[] args) {
int num = 100;
boolean bool = true;
String str = "Hello Java!";
// format 메서드
String format1 = String.format("num: %d, bool: %b, str: %s", num, bool, str);
System.out.println(format1);
String format2 = String.format("숫자: %.2f", 10.1234);
System.out.println(format2);
// printf
System.out.printf("숫자: %.3f\n", 10.1234);
// matches 메서드
// "Hello, Java!" Java OR World
String regex = "Hello, (Java!|World)";
System.out.println("'str'가 패턴과 일치하는가? " + str.matches(regex));
}
}
num: 100, bool: true, str: Hello Java!
숫자: 10.12
숫자: 10.123
'str'가 패턴과 일치하는가? false
문자열 정보 조회
- length( ) : 문자열의 길이를 반환한다.
- isEmpty( ) : 문자열이 비어 있는지 확인한다. (길이가 0)
- isBlank( ) : 문자열이 비어 있는지 확인한다. (길이가 0 이거나 공백만 있는 경우), 자바 11
- charAt (int index) : 저장된 인덱스에 있는 문자를 반환한다.
문자열 비교
- equals (Object anObject ) : 두 문자열이 동일한지 비교한다.
- equalsIgnoreCase (String anotherString) : 두 문자열을 대소문자 구분 없이 비교한다.
- compareTo (String anotheString) : 두 문자열을 사전 순으로 비교한다.
- compareToIgnoreCase (String str) : 두 문자열을 대소문자 구분 없이 사전적으로 비교한다.
- startsWith (String prefix) : 문자열이 특정 접두사로 시작하는지 확인한다.
- endWith (String suffix) : 문자열이 특정 접미사로 끝나는지 확인한다.
문자열 검색
- contains (CharSequence s) : 문자열이 특정 문자열을 포함하고 있는지 확인한다.
- indexOf (String ch) / indexOf (String ch, int fromIndex) : 문자열이 처음 등장하는 위치를 반환한다.
- lastIndexOf (String ch) : 문자열이 마지막으로 등장하는 위치를 반환한다.
문자열 조작 및 변환(반환값 받아야함)
- substring (int beginIndex) / substring(int beginIndex, int endIndex) : 문자열의 부분
문자열을 반환한다. - concat (String str) : 문자열의 끝에 다른 문자열을 붙인다.
- replace (CharSequence target, CharSequence replacement) : 특정 문자열을 새 문자열로 대체
한다. - replaceAll (String regex, String replacement) : 문자열에서 정규 표현식과 일치하는 부분을 새
문자열로 대체한다. - replaceFirst (String regex, String replacement) : 문자열에서 정규 표현식과 일치하는 첫 번째
부분을 새 문자열로 대체한다. - toLowerCase() / toUpperCase() : 문자열을 소문자나 대문자로 변환한다.
- trim() : 문자열 양쪽 끝의 공백을 제거한다. 단순 Whitespace 만 제거할 수 있다.
- strip() : Whitespace 와 유니코드 공백을 포함해서 제거한다. 자바 11
기타 유틸리티
- valueOf (Object obj) : 다양한 타입을 문자열로 변환한다.
- toCharArray(): 문자열을 문자 배열로 변환한다.
- format (String format, Object... args) : 형식 문자열과 인자를 사용하여 새로운 문자열을 생성한
다. - matches (String regex) : 문자열이 주어진 정규 표현식과 일치하는지 확인한다.
'Java' 카테고리의 다른 글
[Java] Wrapper class (0) | 2024.04.05 |
---|---|
[Java] 가변 String (1) | 2024.04.04 |
[Java] String 클래스가 불변 객체 라고? (0) | 2024.04.02 |
[Java] 불변 객체, 불변 클래스 (1) | 2024.04.01 |
[Java] Object 클래스 (2) | 2024.03.29 |