본문 바로가기

Kosta 교육

[Day13 - JAVA] chap9. lang 패키지_2

2. 1 String 클래스

: 문자형 배열(char[])과 그에 관련된 메서드들이 정의됨

public final class String implements java.io.Serializable, Comparable{
	/** The value is used for character storage. */
    private char[] value;
}

: String 인스턴스의 내용을 변경 불가(주소 값이 바뀌어 출력이 바뀌는 것일 뿐 기존 주소에 배정된 내용은 변경될 수 없다.)


2.2 빈 문자열("", empty string)

: 내용이 없는 문자열

: 크기가 0인 char형 배열을 저장하는 문자열 (크기가 0인 배열을 생성하는 것은 어느 타입이나 가능)

: String str = "";이 가능하지만 char c = '';은 불가능

: String은 참조형의 기본값인 null 보다 빈 문자열로 초기화하고, char형은 기본값인 '₩u0000'보다 공백으로 초기화

String str1 = null; // null로 초기화 하는것이 아닌
String str2 = " "; // 빈 문자열로 초기화

char c = '\u0000'; // char의 기본값으로 초기화 하는것이 아닌
char c = ' '; // 공백으로 초기화

2.3 String 클래스 생성자 및 메서드

String(String s) 주어진 문자열(s)를 갖는 String 인스턴스를 생성
String(char[] value) 주어진 문자열(value)을 갖는 String 인스턴스를 생성
String(StringBuffer buf) StringBuffer 인스턴스가 갖고 있는 문자열과 같은 내용의 String 인스턴스를 생성
char charAt(int index) 지정된 위치(index)에 있는 문자를 알려줌
String concat(String str) 문자열(str)을 뒤에 덧붙임
boolean contains(CharSequence s) 지정된 문자열(s)이 포함되어 있는지 검사
boolean endsWith(String suffix) 지정된 문자열(suffix)로 끝나는지 검사
boolean equals(Object obj) 매개변수로 받은 문자열(obj)과 String 인스턴스의 문자열을 비교
boolean equalsIgnoreCase(String str) 문자열과 String 인스턴스의 문자열을 대소문자 구분없이 비교
int indexOf(int ch) 주어진 문자(ch)가 문자열에 존재하는지 확인하여 위치(index)를 알려주며, 못찾으면 -1을 반환
ind indexOf(String str) 주어진 문자열이 존재하는지 확인하여 그 위치(index)를 알려주며, 못찾으면 -1을 반환
String intern() 문자열을 constant pod에 등록하고, 같은 내용의 문자열이 있을 경우 그 문자열의 주소값을 반환
int lastIndexOf(int ch) 지정된 문자 또는 문자코드를 문자열의 오른쪽 끝에서부터 찾아서 위치(index)를 알려주며, 못찾으면 -1 반환
int lastIndexOf(String str) 지정된 문자열을 인스턴스의 문자열 끝에서부터 찾아서 위치(index)를 알려주고, 못찾으면 -1 반환
int length() 문자열의 길이를 알려줌
String replace(char old, char nw) 문자열 중의 문자(old)를 새로운 문자(nw)로 바꾼 문자열을 반환
String replace(CharSequence old, CharSequence nw) 문자열 중의 문자열(old)를 새로운 문자열(nw)로 모두 바꾼 문자열을 반환
String replaceAll(String regex, String replacement) 문자열 중에서 지정된 문자열(regex)과 일치하는 것을 새로운 문자열(replacement)로 모두 변경
String replaceFirst(String regex, String replacement) 문자열 중에서 지정된 문자열과(regex)과 일치하는 것 중, 첫 번째 것만 새로운 문자열(replacement)로 변경
String[] split(String regex) 문자열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아 반환
String[] split(String regex, int limit) 문자열을 지정된 분리자(regex)로 나누어 문자열배열에 담아 반환, 문자열 전체를 지정된 수(limit)로 자름
boolean startWith(String prefix) 주어진 문자열(prefix)로 시작하는지 검사
String substring(int begin)
String substring(int begin, int end)
주어진 시작위치(begin)부터 끝 위치(end) 범위에 포함된 문자열을 얻으며, 끝 위치(end) 문자는 포함되지 않음
String toLowerCase() String 인스턴스에 저장되어 있는 모든 문자열을 소문자로 변환하여 반환
String toUpperCase() String 인스턴스에 저장되어 있는 모든 문자열을 대문자로 변환하여 반환
String toString() String 인스턴스에 저장되어 있는 문자열을 반환
String trim 문자열의 왼쪽 끝과 오른쪽 끝에 있는 공백을 없앤 결과를 반환하며, 문자열 중간에 있는 공백은 제거되지 않음
static String valueOf(타입 변수) 지정된 값을 문자열로 변환하여 반환하며, 참조변수의 경우 toString()을 호출한 결과를 반환

2.4 문자열과 기본형간의 변환

String str1 = 100 + "";
String str2 = String.valueOf(100); // 더 빠른 방법

int i = Integer.pareseInt("100"); // 문자열을 int로 
int i2 = Integer.valueOf("100"); // 문자열을 int로
char c = "A".charAt(0); // 문자열을 char로

3.1 StringBuffer 클래스

: String처럼 문자형 배열(char[])을 내부적으로 가지고 있음

: String 클래스와 달리 내용 변경이 가능

: equals를 오버라이딩하지 않음

StringBuffer a = new StringBuffer("abc");
StringBuffer b = new StringBuffer("abc");
System.out.println(a == b); // false;
System.out.println(a.equals(b)); // false;

: 인스턴스 생성 시 버퍼의 크기를 충분히 지정해주는 것이 좋음(버퍼가 작으면 성능이 저하됨)

 

* StringBuilder

: 더 높은 버전에서 존재

: StringBuffer와 동일하지만, 동기화(여러개의 쓰레드가 동시에 접근하지 못하도록 막는 것) 여부가 다름

: StringBuffer는 동시에 접근하고 있는지 체크하여 동기화 진행

: StringBuilder는 쓰레드를 사용할 때에만 동기화하도록 하고, 그 외에는 동기화 진행하지 않음(계속 동기화한다면 무거워지기 때문)


3.2 StringBuffer의 생성자와 메서드

StringBuffer() 16문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성
StringBuffer(int length) 지정된 개수의 문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스 생성
StringBuffer(String str) 지정된 문자열 값(str)을 갖는 StringBuffer 인스턴스를 생성
StringBuffer append(타입 변수) 매개변수로 입력된 값을 문자열로 변환하여 StringBuffer 인스턴스가 저장하고 있는 문자열의 뒤에 덧붙임
int capacity() StringBuffer 인스턴스의 버퍼크기를 알려주며 length()는 버퍼에 담긴 문자열의 크기를 알려줌
char charAt(int index) 지정된 위치(index)에 있는 문자를 반환
StringBuffer delelte(int start, int end) 시작위치(start)부터 끝 위치(end) 사이에 있는 문자를 제거 (끝 위치 문자는 제외)
StringBuffer deleteCharAt(int index) 지정된 위치(index)의 문자를 제거
StringBuffer insert(int post, 타입 변수) 두 번째 매개변수로 받은 값을 문자열로 변환하여 지정된 위치(pos)에 추가
int length StringBuffer 인스턴스에 저장되어 있는 문자열의 길이를 반환
StringBuffer replace(int start, int end, String str) 지정된 범위(start~end)의 문자들을 주어진 문자열로 변경 (끝 위치 문자는 제외)
StringBuffer reverse() StringBuffer 인스턴스에 저장되어 있는 문자열의 순서를 거꾸로 나열
void setCharAt(int index, char ch) 지정된 위치의 문자를 주어진 문자(ch)로 변경
void setLength(int newLength) 지정된 크기로 문자열의 길이를 변경하며, 크기를 늘리는 경우 나머지 빈 공간을 null로 채움
String toString() StringBuffer 인스턴스의 문자열을 Strig으로 반환
String substring(int start)
String substring(int start, int end)
지정된 범위 내의 문자열 String으로 뽑아서 반환. 시작만 정하면 시작 위치부터 문자열을 끝까지 반환

4.1 Math 클래스

static int abs(int f)
static long abs(long f)
static float abs(float f)
static double abs(double f)
주어진 값의 절대값을 반환
static double ceil(double a) 주어진 값을 올림하여 반환
static double floor(double a) 주어진 값을 버림하여 반환
static int max(int a, int b)
static int max(long a, long b)
static float max(float a, floa b)
stataic double max(double a, double b)
주어진 두 값을 비교하여 큰 쪽을 반환
static double random() 0.0 ~ 1.0 범위의 임의의 double 값을 반환하며, 0은 포함하고 1은 포함하지 않음
static double rint(double a) 주어진 double 값과 가장 가까운 정수값을 double 형으로 반환
static long round(double a)
static long round(float a)
소수점 첫째자리에서 반올림한 정수값(long)을 반환

4.2 Wrapper 클래스

: 기본형을 클래스로 정의한 것

: 내부적으로 기본형 변수를 가지고 있음

public final class Integer extends Number implements Comparable{
	...
    private int value;
}
기본형 래퍼클래스 생성자
boolean Boolean Boolean(boolean value) Boolean(String s)
char Character Character(char value)
byte Byte Byte(byte value) Byte(String s)
short Short Short(short value) Short(String s)
int Integer Integer(int value) Integer(String s)
long Long Long(long value) Long(String s)
float Float Float(double value) Float(float value) Float(String s)
double Double Double(double value) Double(String s)

 

깃허브 링크 :  https://github.com/Khjin06k/kostaJava/tree/main/src/day13/chap9_java_lang