재밌고 어려운 IT를 이해해보자~!
기본 API클래스3 - String 본문
String 클래스는 문자열을 처리하는 객체형 데이터 타입. 문자열을 처리하기 위한 다양한 기능들을 제공한다.
package exam.code.str;
public class StringTest {
public static void main(String[] args) {
String str = "오늘은 비가 너무 많이 옵니다 비조심.";
System.out.println("문장의 길이 " + str.length());
System.out.println("문자추 추출 :" + str.charAt(11));// 해당 위치에 있는 캐릭터 하나 추출
System.out.println("해당 문자 위치 :" +str.indexOf("이"));
System.out.println("해당 문자 마지막 :" +str.lastIndexOf("이")); //중복된 글자중 마지막 위치 출력
String str2 = "11오늘은 비22가 너무 많이 옵니다 33비조심.";
System.out.println(str2.replaceAll("[0-9]", " ")); // 숫자가 0~9인것들은 공백으로 처리
//그냥 replace를 쓰면 정규식으로 인정되지 않고 하나의 스트링으로 인식
//replaceall로해서 정규식이란 패터을 쓰면 편하다 .
String str3="오늘은 날씨가 험하니 집에 일찍 들어가세요";
System.out.println(str3.substring(11));//11부터 출력
System.out.println(str3.substring(0,11));//0~10까지 출력
//배열의속성 -> 길이고정, 수정,변경 불가능
//String a ="산삼"
//a + "계세요" 를하면 크기가 2였던 배열이 5로 늘어나면서 새로운 주소값을 갖는다 . (새로운 공간에 할당) 주소값이 달라짐
//이러한 메모리적인 부담을 덜어주고자 나온게 Stringbuffer, Stringbuilder이다.
//보통 StringBuilder를 더 많이쓴다 그이유는
// String Buffer는 thread safty가있다 .
//이것은 비동기 상황에서 data유지가능.
//한번에 여러가지가 데이터에 접하지 못하도록 막는다.
//데이터 접근 권한을 한개씩 줌으로써 질서 유지기능이 있다.
//Builder는 다음과 같은 기능이 없다.
//thread를 사용할때는 buffer가 좋지만 그외에 입란적인 상황에선 builder가 좋다 .
//빌더나 버퍼는 내부적 배열을 만들때 좀더 넉넉하게 만든다. 어느정도 글자가 들어오는것은 커버할 수 있다.
}
}
StringBuilder 사용!
package exam.code.str;
public class StringBulderTest {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("안녕하세요" + "\n");
sb.append("만나서 반갑습니다.");
System.out.println(sb);
System.out.println("------------------------");
//삭제
// delete(int start, int end); start<= x < end
sb.delete(0, 4);
System.out.println(sb);
System.out.println("------------------------");
//상빙ㅂ
sb.insert(4, "안녕하세요"); // 삽입 시작위치 삽입할땐 연속성이 있어야한다.
System.out.println(sb);
System.out.println("------------------------");
System.out.println(sb.reverse()); //문자 반대로 출력
}
}
'교육전 개인공부' 카테고리의 다른 글
컬렉션 프레임워크 (2) | 2023.10.23 |
---|---|
기본 API클래스4 -Wrapper (1) | 2023.10.23 |
기본 API 클래스2 -java.lang 패키지 (0) | 2023.10.20 |
기본 API 클래스 - API문서작성 (0) | 2023.10.19 |
예외처리 (2) | 2023.10.18 |
Comments