String class
String class : data(char[ ]) + method(related to string)
-immutable class.(cannot modify contents.)
-String combination that is using operator(+) is low performance.
if there are frequent String combination or modification, use mutable StringBuffer.
String Comparation
Difference between String str = "abc" and String str = new String("abc");
String is immutable class so it is good to use sooner rather than latter that creating new object by "new".
== compares the address. so when compare str3 and str4, those have diffrent address, so even though they have same string, it will return false!
str1 == str2 ? true, str3 == str4 ? false
str1.equals(str2) ? true, str3.equals(str4) ? true
The first one is more efficient because multiple str1, str2, ... can share the same object.
empty string
Casting integer to string
Initializing string
string class constructor and method
Method | Description | Example |
String(char[ ] value) | char=>String 주어진 문자열(value)을 갖는 String 인스턴스를 생성한다. (참고)String=> 문자 toCharArray()를 쓴다! | char[ ] c = {'H','e','l','l','o'}; String s = new String(c); //s = "Hello" |
String(StringBuffer buf) | mutable string(내용 변경 가능) StringBuffer 인스턴스가 갖고 있는 문자열과 같은 내용의 String인스턴스를 생성한다. | StringBuffer sb = new StringBuffer("Hello"); String s = new String(sb); |
char charAt(int index) | 지정된 위치(index)에 있는 문자를 알려준다.(index는 0부터 시작) | String s = "Hello"; String n = "012345"; char c = s.charAt(1);//c = 'e' char c2 = n.charAt(1);//c2 = '1' |
int compareTo(String str) | 정렬할 때 사용한다. 문자열(str)과 사전순서로 비교한다. 같으면 0, 사전순으로 이전이면 음수, 이후면 양수를 반환한다. | int i = "aaa".compareTo("aaa");//i = 0 int i2 = "aaa".compareTo("bbb");//i2 = -1 int i3 = "bbb".compareTo("aaa");//i3 = 1 |
String concat(String str) | 문자열(str)을 뒤에 덧붙인다. | String s = "Hello"; String s2 = s.concat("World"); |
boolean contains(CharSequence s) | 지정된 문자열(s)이 포함되었는지 검사한다. CharSequence는 인터페이스이다. char[ ]를 갖는 클래스들을 CharSequence 인터페이스로 만들었다. | String s = "abcde"; boolean b = s.contains("bc");//b = true |
boolean endsWith(String suffix) | 지정된 문자열(suffix)로 끝나는지 검사한다. | String file = "Hello.txt"; boolean b = file.endsWith("txt");//b = true |
boolean equals(Object obj) | 매개변수로 받은 문자열(obj)과 String인스턴스의 문자열을 비교한다. obj가 String이 아니거나 문자열이 다르면 false를 반환한다.(대소문자 구분한다.) | String s = "Hello"; boolean b = s.equals("Hello");//b = true boolean b2 = s.equals("hello");//b2 = false |
boolean equalsIgnoreCase(String str) | 문자열과 String인스턴스의 문자열을 대소문자 구분없이 비교한다. | String s = "Hello"; boolean b = s.equalsIgnoreCase("HELLO");//b = true boolean b2 = s.equalsIgnoreCase("heLLO");//b2 = false |
int indexOf(int ch) | 주어진 문자(ch)가 문자열에 존재하는지 확인하여 위치(index)를 알려준다. 못 찾으면 -1을 반환한다.(index는 0부터 시작) | String s = "Hello"; int idx1 = s.indexOf('o');//idx1 = 4 int idx2 = s.indexOf('k');//idx2 = -1 |
int indexOf(int ch, int pos) | 주어진 문자(ch)가 문자열에 존재하는지 지정된 위치(pos)부터 확인하여 위치(index)를 알려준다. 못 찾으면 -1을 반환한다. (index는 0부터 시작) | String s = "Hello"; int idx1 = s.indexOf('e',0);//1 int idx2 = s.indexOf('e',2);//-1 |
int indexOf(String str) | 주어진 문자열이 존재하는지 확인하여 그 위치(index)를 알려준다. 없으면 -1을 반환한다.(index는 0부터 시작) | String s = "ABCDEFG"; int idx = s.indexOf("CD")//2 |
int lastIndexOf(int ch) | 지정된 문자 또는 문자코드를 문자열의 오른쪽끝에서부터 찾아서 위치(index)를 알려준다. 못 찾으면 -1을 반환한다. | String s = "java.lang.Object"; int idx1 = s.lastIndexOf('.');//9 int idx2 = s.indexOf('.');//4 |
int lastIndexOf(String str) | 지정된 문자열을 인스턴스의 문자열 끝에서부터 찾아서 위치(index)를 알려준다. 못 찾으면 -1을 반환한다. | String s = "java.lang.java"; int idx1 = s.lastIndexOf("java");//10 int idx2 = s.indexOf("java");//0 |
int length() | 문자열의 길이를 알려준다. 주로 반복문 안에서 많이 쓰인다. | String s = "Hello"; int length = s.length();//5 |
String[ ] split(String regex) | regex는 Regular Expression(정규식)을 의미한다. 문자열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아 반환한다. | String animals = "dog,cat,bear"; String[ ] arr = animals.split(","); //arr[0] = "dog" //arr[1] = "cat" //arr[2] = "bear" |
String[ ] split(String regex, int limit) | 문자열을 지정된 분리자(regex)로 나누어 문자열배열에 담아 봔환한다. 단, 문자열 전체를 지정된 수(limit)로 자른다. | String animals = "dog,cat,bear"; String[ ] arr = animals.split(",",2); //arr[0] = "dog" //arr[1] = "cat,bear" |
boolean startsWith(String prefix) | 주어진 문자열(prefix)로 시작하는지 검사한다. | String s = "java.lang.Object"; boolean b = s.startsWith("java");//true boolean b2 = s.startsWith("lang");//false |
String substring(int begin) String substring(int begin, int end) | 주어진 시작위치(begin)부터 끝 위치(end)범위에 포함된 문자열을 얻는다. 이 때, 시작위치의 문자는 범위에 포함되지만, 끝 위치의 문자는 포함되지 않는다. (begin<= x < end) | String s = "java.lang.Object"; String c = s.substring(10);//"Object" String p = s.substring(5,9);//"lang" |
String toLowerCase() String toUpperCase() | String 인스턴스에 저장되어있는 모든 문자열을 소문자/대문자로 변환하여 반환한다. | String s = "Hello"; String s1 = s.toLowerCase();//"hello" String s2 = s.toUpperCase();//"HELLO" |
String trim() | 문자열의 왼쪽 끝과 오른쪽 끝에 있는 공백을 없앤 결과를 반환한다. 이 때 문자열 중간에 있는 공백은 제거되지 않는다. | String s = " Hello World "; String s1 = s.trim();//"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) | 지정된 값을 문자열로 변환하여 반환한다. 참조변수의 경우에는 toString()을 호출한 결과를 반환한다. | String b = String.valueOf(true);//"true" String c = String.valueOf('a');//"a" String i = String.valueOf(100);//"100" String l = String.valueOf(100L);//"100L" String f = String.valueOf(10f);//"10f" String d = String.valueOf(10.0);//"10.0" java.util.Date dd = new java.util.Date(); String date = String.valueOf(true); |
StringJoiner
join()과 StringJoiner
: join()은 여러 문자열 사이에 구분자를 넣어서 결합한다.
문자열과 기본형 간의 변환
기본형 <=> 문자열 : valueOf로 가능하다.
(참고) byte, short를 문자열로 변경할 때는 String valueOf(int i)를 사용하면 된다.
숫자를 문자열로
2. 문자열을 숫자로
Last updated