equals()
: 두 개의 문자열이 동일한 값을 가지고 있는지 비교하여 결과값을 리턴
String str1 = "java";
String str2 = "java";
boolean equals = str1.equals(str2);
System.out.println("equals: " + equals);
결과: true
indexOf()
: 문자열에서 특정 문자가 시작되는 index를 리턴
String str = "abcdef";
int indexOf = str.indexOf("d");
System.out.println("indexOf: " + indexOf);
결과: 3
lastindexOf()
: 지정한 문자가 가장 뒤 쪽에 있는 경우의 index를 리턴
String str = "AndroidApp";
int lastIndexOf = str.lastIndexOf("A");
System.out.println("lastIndexOf:" + lastIndexOf);
결과: 7
length()
: 문자열의 길이를 리턴
substring()
: 문자열에서 지정한 범위에 속하는 문자열만 잘라서 반환
String str = "ABCDEF";
String substring = str.substring(0, 2); // 0 앞에 칼, 2 앞에 칼 꽂는다 생각하기
System.out.println("substring: " + substring);
결과: AB
toUpperCase(), toLowerCase()
: 문자열을 모두 대문자 or 소문자로 변경하는 경우 사용
concat()
: 문자열과 문자열을 이어야하는 경우 사용
- '+' 연산자 or StringBuffer + append() 로 대체 가능하다.
String str1 = "apple";
String str2 = "pie";
System.out.println(str1.concat(pie));
결과: applepie
startWith()
: 문자열이 지정한 문자로 시작하는지 판단 후, 있으면 true 없으면 false 리턴
- 대소문자 구별
String str = "apple";
boolean startsWith = str.startsWith("a");
System.out.println("startsWith: " + startsWith);
결과: true
endWith()
: 문자열 마지막에 지정한 문자가 있는지 판단 후, 있으면 true 없으면 false 리턴
- 대소문자 구별
String str = "test";
boolean endsWith = str.endsWith("t");
System.out.println("endsWith: " + endsWith);
결과: true
replace()
: 특정 문자를 원하는 문자로 변경해야하는 경우 사용
String str = "A*B*C*D";
String replace = str.replace("*", "-");
System.out.println("replace: " + replace);
결과: A-B-C-D
replaceAll()
: 문자열 중 특정 문자를 다른 문자로 바꾸고 싶을 경우 사용
String str = "AB CD";
String replaceAll = str.replaceAll("\\p{Space}", "*");
System.out.println("replaceAll: " + replaceAll);
결과: AB*CD
split()
: 지정한 문자로 문자열을 나눠서 배열로 리턴
String str = "A:B:C:D:abcd";
String[] split = str.split(":");
System.out.println("split: " + split[1]);
결과: B
trim()
: 문자열의 시작과 끝에 있는 공백을 지워준다. 중간에 있는 공백은 지워지지 않는다.
String s = " java java java ";
String v;
v = s.trim();
System.out.println("trim:" + v);
결과: java java java
compareTo()
: 두 개의 문자열을 앞에서부터 순서대로 비교하다가 다른 부분이 있으면 다른 만큼의 정수값을 리턴
- 기준이 되는 문자(함수가 붙은)의 아스키코드 - 비교되는 문자의 아스키코드
- 대소문자를 구별
- 완전히 같으면 0 리턴
String str1 = "A";
String str2 = "B";
int compareTo = str1.compareTo(str2);
if(compareTo > 0){
System.out.println(str1 + " > " +str2);
} else if (compareTo == 0){
System.out.println(str1 + " = " +str2);
} else{
System.out.println(str1 + " < " +str2);
}
결과: A < B
contains()
: 두 개의 문자열을 비교해서 파라미터 내 비교대상 문자열을 포함하고 있으면 true, 없으면 false 리턴
String str1 = "abcd";
String str2 = "c";
boolean contains = str1.contains(str2);
System.out.println("contains: " + contains);
결과: true
charAt()
: 지정한 index 문자를 그대로 리턴
String str1 = "문자열을 공부해봅시다";
String str2 = "abcdef";
System.out.println(str1.charAt(2));
결과 : 열
valueOf()
: 지정한 개체의 원시 값을 반환
int i = 12345;
long l = 1L;
char c = '1';
System.out.println("valueOf: " + String.valueOf (i));
System.out.println("valueOf: " + String.valueOf (l));
System.out.println("valueOf: " + String.valueOf (c));
결과:
valueOf: 12345
valueOf: 1
valueOf: 1
format()
: 서식 문자열을 이용해서 서식화 된 문자열을 리턴
int i = 123456789;
String str = String.format("%,d", i);
System.out.println("format: " + str);
결과: 123,456,789
matches()
: 지정한 정규 표현과 일치하면 true, 다르면 false 리턴
- 비밀번호 암호화에서 자주 사용된다.
int i = 123456;
String str1 = String.format("%,d", i);
String str2 = "123456";
boolean matches = str1.matches(str2);
System.out.println("matches: " + matches);
결과: false
replaceFirst()
: 문자열에 지정한 문자 a가 있으면 첫번째만 새로 지정한 문자 b로 바꿔서 리턴
String str = "Aman";
String replaceFirst = str.replaceFirst("A", "super");
System.out.println("replaceFirst: " + replaceFirst);
결과: superman
문제 푸는데 익숙하지 않은 몇 개는 계속 찾아보게 돼서 정리했다.
참고