1- "indexof()" Method
indexOf()는 주어진 문자열 내에서 특정 문자나 부분 문자열이 처음으로 나타나는 위치를 반환하는 내장 메서드(built-in method)입니다.
문자나 부분 문자열을 찾을 수 없을 경우, indexOf() method는 '-1'을 반환합니다.
Syntax
public int indexOf(String str)
public int indexOf(String str, int fromIndex)
public int indexOf(int char)
public int indexOf(int char, int fromIndex)
- str: 문자열을 찾기 위한 String 값
- fromIndex: 검색을 시작할 위치를 나타내는 int 값
- char: 단일 문자를 나타내는 int 값, 예: 'A' 또는 unicode 값
public class StringTest {
public static void main(String[] args) {
String s1 = "1245";
String s2 = "5678";
String s3 = "Sparta";
System.out.println(s3.indexOf('a')); // 출력 결과: 2
System.out.println(s3.indexOf("ta") + "\n"); // 출력 결과: 4
//s1와 s2 문자열에서 동일한 문자를 찾기
// 출력 결과 >=0 경우는 s1와 s2 문자열이 동일한 문자가 갖고 있는 듯하고 s1에서 동일한 문자의 위치를 반환한다.
// 출력 결과는 -1로 나타나면 동일한 문자가 없다는 것입니다.
for (int i = 0; i < 4; i++) {
System.out.println(s1.indexOf(s2.charAt(i)));
}
}
결과 설명: '5' 문자는 s1와 s2 문자열에서 존재하기 때문에 s1에서 '5'의 위치를 반환합니다 (3).
2. StringBuilder Class
StringBuilder는 문자열을 변경할 때, 문자열을 불변(immutable)으로 처리하는 String 클래스의 단점을 보완합니다. 문자열을 자주 수정하거나 조합할 필요가 있을 때, StringBuilder를 사용하면 성능이 향상됩니다.
주요 특징
- Mutability: StringBuilder 객체는 변경 가능합니다. 즉, 기존 문자열을 수정하거나 추가, 삭제할 수 있습니다.
- Efficiency(효율성): StringBuilder는 문자열을 직접 조작하므로, String을 사용하여 문자열을 자주 수정할 때 발생할 수 있는 성능 저하를 방지합니다. String은 변경 불가능하기 때문에, 문자열을 수정할 때마다 새로운 객체를 생성합니다. 반면, StringBuilder는 내부 버퍼(Buffer)를 사용하여 문자열을 직접 수정합니다.
StringBuilder 사용
StringBuilder의 객체 생성
StringBuilder builder = new StringBuilder();
StringBuilder builder2 = new StringBuilder(50);
StringBuilder builder3 = new StringBuilder("Sparta Coding");
주요 Method
- append(): 문자열, 숫자, 객체 등을 StringBuilder의 끝에 추가합니다.
StringBuilder sb = new StringBuilder("Sparta");
sb.append(" Coding"); // 결과: "Sparta Coding"
- insert(): 지정된 위치에 문자열을 삽입합니다.
StringBuilder sb = new StringBuilder("Hello");
sb.insert(5, " World"); // 결과: "Hello World"
- delete(): 지정된 범위의 문자를 삭제합니다.
StringBuilder sb = new StringBuilder("Hello World");
sb.delete(5, 11); // 결과: "Hello"
- replace(): 지정된 범위의 문자를 다른 문자열로 교체합니다.
StringBuilder sb = new StringBuilder("Hello World");
sb.replace(6, 11, "Java"); // 결과: "Hello Java"
- reverse(): 문자열을 반전시킵니다.
StringBuilder sb = new StringBuilder("Hello");
sb.reverse(); // 결과: "olleH"
- toString(): StringBuilder 객체를 문자열로 변환합니다.
//int의 List 객체 생성
List<Integer> digitsNumbers = new ArrayList<>();
for (int i = 1; i < 10; i++) {
digitsNumbers.add(i);
}
System.out.println(digitsNumbers);
//random 숫자 shuffle
Collections.shuffle(digitsNumbers);
System.out.println(digitsNumbers);
////생성한 int의 List 객체를 문자열로 변환합니다.
StringBuilder builder = new StringBuilder();
for (int i = 0; i < 3; i++) {
builder.append(digitsNumbers.get(i));
}
System.out.println(builder.toString());
'Java' 카테고리의 다른 글
Java Scanner Class (0) | 2024.09.20 |
---|---|
숫자 야구 Game 구현 및 Troubleshooting (0) | 2024.09.20 |
Java Lambda Expression & Stream API (0) | 2024.09.13 |
Java Collection Interface (0) | 2024.09.12 |
Java Error & Exception (0) | 2024.09.09 |