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