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
'Kosta 교육' 카테고리의 다른 글
[Day15 - JAVA] chap14. 입출력 (0) | 2023.09.01 |
---|---|
[Day14~15 - JAVA] chap11. 컬렉션프레임워크 (1) | 2023.08.30 |
[Day12 - JAVA] chap9. lang 패키지_1 (0) | 2023.08.29 |
[Day8 - JAVA] chap6. 객체지향언어1_2 (0) | 2023.08.28 |
[Day12] chap8. 예외처리 (0) | 2023.08.28 |