본문 바로가기
JAVA BASE/lang & util

03. [자바] String생성자, 메서드(표)

by staticClass 2020. 12. 24.
메서드 / 설명 예 제 결 과
String(String s) String s = new String("Hello"); s = "Hello"
주어진 문자열(s)를 갖는 String인스턴스를
생성한다.
String(char[] value) char[] c = {'H', 'e', 'l', 'l', 'o'};
String s = new String(c);
s = "Hello"
주어진 문자열(value)을 갖는 String인스턴스를
생성한다.
String(StringBuffer buf) StringBuffer sb = new StringBuffer("Hello");
String s = new String(sb);
s = "Hello"
StringBuffer인스턴스가 갖고 있는 문자열과 
같은 내용의 인스턴스를 생성한다.
char charAt(int index) String s = "Hello";
String n = "0123456";
char c  = s.charAt(1);
char c2 = n.charAt(1);
c = 'e'
c2 = '1'
지정된 위치(index)에 있는 문자를 알려준다.
(index는 0부터 시작)
String compareTo(String str) int i  = "aaa".compareTo("aaa");
int i2 = "aaa".compareTo("bbb");
int i3 = "bbb".compareTo("aaa");
i = 0;
i2 = -1
i3 = 1
문자열(str)과 사전순서로 비교한다. 같으면 0을,
사전순으로 이전이면 음수를,
이후면 양수를 반환한다.
String concat(String str) String s = "Hello";
String s2 = s.concat(" World");
s2 = "Hello World"
문자열(str)을 뒤에 덧붙인다.
boolean contains(CharSequence s) String s = "abcdefg";
boolean b = s.contains("bc");
b = true
지정된 문자열(s)이 포함되었는지 검사한다.
boolean endsWith(String suffix) String file = "Hello.txt";
boolean b = file.endWith("txt");
b = true
지정된 문자열(suffix)로 끝나는지 검사한다.
boolean equals(Object obj) String s = "Hello";
boolean b = s.equals("Hello");
boolean b2 = s.equals("hello");
b = true
b2 = false
매개변수로 받은 문자열(obj)과 String인스턴스의
문자열을 비교한다. obj가 String이 아니거나
문자열이 다르면 false를 반환한다.
boolean equalsIgnoreCase(String str) String s = "Hello";
boolean b = s.equalsIgnoreCase("HELLO");
boolean b = s.equalsIgnoreCase("hello");
b = true
b2 = true
문자열과 String 인스턴스의 문자열을 대소문자
구별없이 비교한다.
int indexOf(int ch) String s = "Hello";
int idx1 = s.indexOf('o');
int idx2 = s.indexOf('k');
idx1 = 4
idx2 = -1
주어진 문자(ch)가 문자열에 존재하는지
확인하여 위치(index)를 알려준다.
못찾으면 -1을 반환한다.(index는 0부터 시작)
int indexOf(int ch, int pos) String s = "Hello";
int idx1 = s.indexOf('e', 0);
int idx2 = s.indexOf('e', 2);
idx = 1
idx = -1
주어진 문자(ch)가 문자열에 존재하는지 지정된
위치(pos)부터 확인하여 위치(index)를 알려준다.
못 찾으면 -1을 반환한다. (index는 0부터 시작)
int indexOf(String str) String s = "ABCDEFG";
int idx = s.indexOf("CD);
idx = 2
주어진 문자열이 존재하는지 확인하여
그 위치(index)를 알려준다.
없으면 -1을 반환한다(index는 0부터 시작)
String intern() String s = new String("abc");
String s2 = new String("abc");
boolean b = (s==s2);
boolean b2 = s.equalse(s2);
boolean b3 = (s.intern()==s2.intern());
b = false;
b2 = true;
b3 = true;
문자열을 상수풀(constant pool)에 등록한다.
이미 상수풀에 같은 내용의 문자열이 있을 경우
그 문자열의 주소값의 데이터를 반환한다.
int lastIndexOf(int ch) String s = "java.lang.Object";
int idx1 = s.lastIndexOf('.');
int idx2 = s.indexOf('.');
idx1 = 9
idx2 = 4
지정된 문자 또는 문자코드를 문자열의 오른쪽
끝에서부터 찾아서 위치(index)를 알려준다.
못찾으면 -1을 반환한다.
int lastIndexOf(String str) String s= "java.lang.java";
int idx1 = s.lastIndexOf("java");
int idx2 = s.indextOf("java");
idx = 10
idx = 0
지정된 문자열을 인스턴스의 문자열 끝에서
부터 찾아서 위치(index)를 알려준다.
못 찾으면 -1을 반환한다.
int length() String s = "Hello";
int length = s.length()'
length = 5
문자열의 길이를 알려준다
String replace(char old, char nw) String s = "Hello";
String s1 = s.replace('H', 'C');
s1 = "Cello";
문자열 중의 문자(old)를 새로운 문자(nw)로
모두 바꾼 문자열을 반환한다.
String replace(String old, String nw) String s = "Hellollo";
String s1 = s.replace("ll", "LL");
s1= "HeLLoLLo";
문자열 중의 문자열(old)을 새로운 문자열(nw)로
모두 바꾼 문자열을 반환한다.
String repalceAll(String regex
, String replacement)
String ab = "AABBAABB";
String r = ab.reaplceAll("BB", "bb");
String r2 = ab.replaceAll("[B]", "c");
r = "AAbbAAbb"
r2 = "AAccAAcc"
문자열 중에서 지정된 문자열(regex)과 일치
하는 것을 새로운 문자열(replacement)로
모두 변경한다.
(regex에 정규식 표현이 가능하다)
String replaceFirst(String regex
, String replacement)
String ab = "AABBAABB";
String r = ab.replaceFirst("BB", "bb");
String r2 = ab.replaceFirst("[B]", "c");
r = "AAbbAABB"
r2 = "AAcBAABB"
문자열 중에서 지정된 문자열(regex)과 
일치하는 것 중, 첫번째 것만 새로운 문자열
(replacement)로 변경한다.
(regex에 정규식 표현이 가능하다)
String[] split(String regex) String animals = "dog,cat,bear";
String[] arr = animals.split(",");
arr[0] = "dog"
arr[1] = "cat"
arr[2] = "bear"
문자열을 지정된 분리자(regex)로 나누어
문자열 배열에 담아 반환한다.
(regex에 정규식 표현이 가능하다)
String[] split(String regex, int limit) String animals = "dog,cat,bear";
String[] arr = animals.split(",", 2);
arr[0] = "dog"
arr[1] = "cat,bear"
문자열을 지정된 분리자(regex)로 나누어
문자열배열에 담아 반환한다. 단, 문자열 전체를
지정된 수(limit)로 자른다.
(regex에 정규식 표현이 가능하다)
static String join(String delimiter , String... str) String[] arr = {"dog,cat,bear"};
String s = String.join("-", arr);
String s1 = String.join("-", "bird", "rat", cow);
s = "dog-cat-bear"
s1 ="bird-rat-cow"
나누어져 있는 문자열을 구분자(delimiter)로
합쳐 문자열로 반환한다.
class StringJoiner(CharSequence delimiter)
class StringJoiner(CharSequence delimiter,
                             CharSequence prefix,
                              CharSequence suffix)

StrinJoiner sj = new StringJoiner(",", "[", "]");
String[] strArr = {"aaa", "bbb", "ccc"};
for(String s : strArr){
    sj.add(s);
}
String s = sj;

s="[aaa, bbb, ccc]"
나누어져 있는 문자열을 구분자(delimiter)로
합쳐 문자열로 반환한다.
반복문을 통한 반복 처리를 해주어야 하며
문자열의 맨 앞과 맨 뒤에 원하는 문자를 추가
가능하다.
static String format(String format
, Obejct... args)
String s =
String.format("%d 더하기 %d는 %d입니다."
, 3, 5, 3+5);

s = "3 더하기 5는
8 입니다."

형식화된 문자열을 만들 수 있다.
boolean startsWith(String prefix) String s = "java.lang.Object";
boolean b = s.startWitn("java");
boolean b2 = s.startWitn("lang");
b = true;
b2 = false;
주어진 문자열(prefix)로 시작하는지 검사한다.
String substring(int begin)
String subString(int begin, int end)
String s = "java.lang.Object";
String c = s.subString(10);
String p = s.subString(5, 9);
c = "Obejct"
p = "lang"
주어진 시작위치(begin)부터 끝 위치(end) 범위에
포함된 문자열을 얻는다. 시작위치의 문자는
범위에 포함되지만 끝 위치의 문자는 포함되지
않는다. (begin ≦ x < end)
String toLowerCase() String s = "Hello";
String s1 = toLowerCase();
s1 = "hello"
String인스턴스에 저장되어있는 모든 문자열을
소문자로 변환하여 반환한다.
String toUpperCase() String s = "Hello";
String s1 = toUpperCase();
s1 = "HELLO"
Stirng인스턴스에 지정되어있는 모든 문자열을
대문자로 변환하여 반환한다.
String toString() String s= "Hello";
String s1 = s.toString();
s1 = "Hello"
String인스턴스에 저장되어 있는 문자열을
반환한다.
String trim() String s = "   Hello World   ";
String s1 = s.trim();
s1="Hello World"
문자열의 왼쪽 끝과 오른쪽 끝에 있는 공백을
없앤 결과를 반환한다.
문자열 중간에 있는 공백은 제거되지 않는다.
static String valueOf(boolean b)
static String valueOf(char c)
static String valueOf(int i)
static String valueOf(long l)
static String valueOf(float f)
static String valueOf(double d)
static String valueOf(Object o)
String b = String.valueOf(true);
Stirng c = String.valueOf('a');
String i = String.valueOf(100);
String l = String.valueOf(100L);
String f = String.valueOf(10f);
String d = String.valueOf(10.0);

java.util.Date dd = new java.util.Date();
String date = String.valueOf(dd);
b = "true"
c = "a"
i = "100"
l = "100"
g = "10.0"
f = "10.0"

date = "Thu Dec 24 
19:27:37 KST 2020"
지정된 값을 문자열로 변환하여 반환한다.
참조변수의 경우, toString()을 호출한 결과를
반환한다.
byte[] getBytes(String encodingType) String s = "가";
byte[] utf8Arr = s.getBytes("UTF-8");

String r = "";
for(byte b : utf8Arr){
  r += String.format("%02X ", b);
}
r = "EA B0 80 "
문자열의 문자 인코딩을 다른 인코딩으로
변경 할 수있다.
String(byte[] arr, String encodingType) String s = "가";
byte[] utf8Arr = s.getBytes("UTF-8");
Stirng r = new String(utf8Arr, "UTF-8")
r = "가"
byte배열을 문자열로 변환 할수 있다.

 

댓글