String 클래스
String(java.lang.String)클래스는 문자열과 관련된 기능을 제공한다.
import java.lang.String;
1. 객체 메서드
charAt(int i) : (char) 문자열이 가지고 있는 문자들 중, i번째 문자를 반환한다.
String str1 = "hello";
System.our.println(str1.charAt(3));
// 출력 : l
concat(String s) : (String) 호출 대상인 문자열의 내용 끝에 s를 붙인 새로운 문자열을 반환한다.
String str1 = "hello";
String str2 = "java!";
String strCon = str1.concat(str2);
System.out.println(strCon);
// 출력 : hello java!
contains(CharSequence s) : (boolean) 호출 대상인 문자열의 내용이 s를 포함하는가의 여부를 반환한다.
String str = "hello java!";
System.out.println(str.contains("java"));
// 출력 : true;
endsWith(String s) : (boolean) 호출 대상인 문자열의 내용이 s로 끝나는가의 여부를 반환한다.
String str = "hello java!";
System.out.println(str.contains("java!"));
// 출력 : true
equals(Object o) : (boolean) o가 Strirng이 될수 있다면 문자열의 내용을 비교하여 동일한가에 대한 여부를 반환한다.
String str1 = "java";
String str2 = "java";
System.out.println(str1 == str2);
// 출력 : true -> 하지만 이거는 객체의 주소가 같다는 것을 의미.
System.out.println(str1.equals(str2));
// 출력 : true -> 이 메서드를 사용해야 실제 값이 같은지를 비교 할 수 있음.
equalsIgnoreCase(String s) : (boolean) equals와 동일하나 대소문자르 가리지 않는다.
String str1 = "Java";
String str2 = "java";
System.out.println(str1.equalsIgnoreCase(str2));
// 출력 : true
indexOf(String s) : (int) 호출 대상이 되는 문자열의 내용 중 s와 일치하는 첫번째 순번을 반환한다. 일치하는 내용이 없다면 -1을 반환한다.
String str1 = "Java";
System.out.println(str1.indexOf("v"));
// 출력 : 2
System.out.println(str1.indexOf("e"));
// 출력 : -1
lastIndexOf(String s) : (int) 호출 대상이 되는 문자열의 내용 중 s와 일치하는 마지막 순번을 반환한다. 일치하는 내용이 없다면 -1을 반환한다.
String str1 = "Java";
System.out.println(str1.lastIndexOf("a"));
// 출력 : 3
System.out.println(str1.lastIndexOf("e"));
// 출력 : -1
length() : (int) 문자열의 길이를 반환한다.
String str1 = "Java";
System.out.println(str1.length());
// 출력 : 4
matches(String r) : (boolean) 호출 대상이 되는 문자열의 내용이 정규식 r에 부합하는가의 여부를 반환한다.
String str1 = "Java";
System.out.println(str1.matches("[a-z]+"));
// 출력 : false -> 소문자로만 이루어져 있지 않아서.
System.out.println(str1.matches("[A-Za-z]+"));
// 출력 : true
repeat(int i) : (String) 문자열의 내용을 i번 반복한 새로운 문자열을 반환한다.
String str1 = "Java";
System.out.println(str1.repeat(2));
// 출력 : JavaJava
replace(CharSequence f, CharSequence t) : (String) 문자열의 내용에서 f를 찾아 t로 치환한 문자열을 반환한다.
String str1 = "Java";
System.out.println(str1.replace("a", ""));
// 출력 : Jv
replaceAll(String r , String t) : (String) 문자열의 내용에서 정규식 r을 만족하는 내용을 t로 치환한 문자열을 반환한다.
String str1 = "Java";
System.out.println(str1.replaceAll("[^a-z]", ""));
// 출력 : ava
split(String r) : (String[]) 문자열에서 정규식 r을 만족하는 내용을 기준으로 문자열을 나누어 문자열 배열로 반환한다.
String str1 = "hello Java";
String[] strArr = str1.split(" ");
// ["hello", "Java"]
startsWith(String s) : (boolean) 호출 대상인 문자열의 내용이 s로 시작하는가의 여부를 반환한다.
String str1 = "hello Java";
System.out.println(str1.startsWith("hello"));
// 출력: true
strip() : (String) 문자열의 내용에서 선/후행하는 연속된 공백을 모두 제거한다.
String str1 = " Java ";
System.out.println(str1.strip());
// 출력: Java
stripLeading() : (String) 문자열의 내용에서 선행하는 연속된 공백을 모두 제거한다.
String str1 = " Java ";
System.out.println(str1.stripLeading());
// 출력: "Java "
stripTrailing() : (String) 문자열의 내용에서 후행하는 연속된 공백을 모두 제거한다.
String str1 = " Java ";
System.out.println(str1.stripLeading());
// 출력: " Java"
substring(int f, int t) : (String) 문자열의 내용에서 f번째 부터 t-1번째까지의 문자열을 반환한다.
String str1 = "Hello Java";
System.out.println(str1.substring(0,3));
// 출력: Hel
toCharArray() : (char[]) 문자열의 내용을 문자 배열로 반환한다.
String str1 = "Java";
char[] arrChar = str1.toCharArry();
// ['J','a','v','a']
toLowerCase() : (String) 문자열이 포함하는 모든 알파벳을 소문자로 치환하여 반환한다.
String str1 = "Java";
System.out.println(str1.toLowerCase());
// 출력: java
toUpperCase() : (String) 문자열이 포함하는 모든 알파벳을 대문자로 치환하여 반환한다.
String str1 = "Java";
System.out.println(str1.toUpperCase());
// 출력: JAVA
2. 정적 메서드
copyValueOf(char[] cs) : (String) 문자 배열을 문자열로 반환한다.
Char[] arrChar = new char[] {'j','a','v','a'};
String str = "";
str = String.copyValueOf(arrChar);
System.out.println(str);
// 출력: java
format(String s, Object ... os): (String) 주어진 규격 s에 맞도록 하나이상의 값 os를 대입한 문자열을 반환한다.
%s : 문자열 대입
%xs : 자리수를 x자로 맞추어, 선행 공백을 추가하여 대입
%-xs : 자리수를 x자로 맞추어, 후행 공백을 추가하여 대입
%.ns : 최대로 출력될 수 있는 문자열의 길이를 n으로 제한하여 대입
- 그 외
%x.ns 및 -x.ns등의 형태로 조합하여 사용할 수 있다.
%d : 정수형(byte, short, int, long등) 대입
%,d : 천자리를 쉼표로 구분하여 대입한다.
%xd : 자리수를 x자로 맞추어, 선행 공백을 추가하여 대입
%-xd : 자리수를 x자로 맞추어, 후행 공백을 추가하여 대입
- 그 외
%,xd, %,-xd 등의 형태로 조합하여 사용할 수 있다.
%f : 실수형(float, double 등) 대입
%,f : 천자리를 쉼표로 구분하여 대입한다.
%.nf : 소수점을 n자까지만 표시하고, 나머지에 대해 반올림하여 대입
%xf : 자리수를 x자로 맞추어, 선행 공백을 추가하여 대입(소수점을 위한 마침표(.)도 길이에 포함된다.)
%-xf : 자리수를 x자로 맞추어, 후행 공백을 추가하여 대입(소수점을 위한 마침표(.)도 길이에 포함된다.)
- 그 외
%x.nf, %-x.nf, %,xf, ,-xf, %,x.nf 등의 형태로 조합하여 사용할 수 있다.
String str = "";
str = String.format("%d번은 %s입니다.", 5, "홍길동");
// 출력: 5번은 홀길동입니다.
join(CharSequence d, CharSequence... cs) : (String) cs를 d로 이어 붙힌 문자열을 반환한다.
String str1 = "Hello";
String str2 = "Java";
System.out.println(String.join(str1,str2));
// 출력: HelloJava
valueOf(double d) : (String) d를 문자열로 반환한다.
String str = "";
str = String.valueOf(0.3d);
System.out.println(str);
// 출력: 0.3
valueOf(float f) : (String) f를 문자열로 반환한다.
String str = "";
str = String.valueOf(5.6f);
System.out.println(str);
// 출력: 5.6
valueOf(int i) : (String) i를 문자열로 반환한다.
String str = "";
str = String.valueOf(500);
System.out.println(str);
// 출력: 500
valueOf(long l) : (String) l를 문자열로 반환한다.
String str = "";
str = String.valueOf(392L);
System.out.println(str);
// 출력: 392