728x90
Class String
Modifier and Type | Method | Description |
int | length() | 문자열의 길이 반환 |
char | charAt(int index) | 문자열의 index 번째 문자 반환 |
String[] | split(String regex) | 정규식에 부합하는 문자열을 기준으로 전체 문자열을 자르고 배열 형태로 반환 |
char[] | toCharArray() | 문자열을 문자 배열로 반환 |
boolean | equals(Object obj) | 두 문자열이 같은지 여부 반환 |
int | compareTo(String str) | 두 String 개체 비교 ( 사전적으로 ) ( 인수보다 작으면 0 보다 작은 값, 크면 0 보다 큰 값 ) |
String | replace(char oldChar, char newChar) replace(CharSequence target, CharSequence replacement) |
문자열에서 모든 oldChar/target을 newChar/replacement로 대체한 문자열 반환 |
String | replaceAll(String regex, String replacement) | 정규 표현식( regex )과 일치하는 부분을 replacement로 대체 후 반환 |
String | toUpperCase() | 문자열에서 모든 문자를 대문자로 변환 |
String | toLowerCase() | 문자열에서 모든 문자를 소문자로 변환 |
static String | format(String format, Object... args) | 인수들을 format 형식에 맞춰 변환 |
boolean | startsWith(String prefix) | 문자열이 prefix로 시작하는지 여부 반환 |
boolean | endsWith(String suffix) | 문자열이 suffix로 끝나는지 여부 반환 |
boolean | contains(CharSequence s) | 문자열에 인수가 포함하는지 여부 반환 |
int | indexOf(int ch) indexOf(String str) |
문자열에서 인수가 위치한 인덱스 반환 |
String | subString(int beginIndex, int endIndex) | 두 인덱스 사이의 문자열을 반환 |
String | trim() | 앞 뒤 공백 제거된 문자열 반환 |
static String | valueOf(int i) |
인수를 String 형태로 반환 ( int, char, double, float, long, boolean, char[], Object, ... ) |
String | concat(String str) | 문자열 뒤에 인수를 이어붙인 문자열 반환 |
( https://docs.oracle.com/javase/8/docs/api/java/lang/String.html )
▶ 문자열의 문자 하나씩 탐색
String s;
// [way 1]
for (int i = 0; i < st.length(); ++i) { st.charAt(i); ...}
// [way 2]
for (char c : st.toCharArray()) { ... }
// [way 3]
for (String s : st.split("")) { ... }
▶ 문자열 바꾸기 ( 대체 )
String s;
// 삭제
// ex) "a" 제거
s = s.replace("a", "");
// ex) 공백 제거
s = s.replaceAll(" ", ""); // [way 1]
s = s.replaceAll("\s", ""); // [way 2]
// ex) 알파벳 제거
s = s.replaceAll("[a-zA-Z]", ""); // [way 1]
s = s.toUpperCase().replaceAll("[A-Z]", ""); // [way 2]
// ex) 숫자 제거
s = s.replaceAll("[0-9]", ""); // [way 1]
s = s.replaceAll("\\d", ""); // [way 2]
// ex) 특수문자 제거
s = s.replaceAll("[^a-zA-Z0-9]", ""); // [way 1]
s = s.replaceAll("\\W", ""); // [way 2]
s = s.replaceAll("[^\\w]", ""); // [way 3]
// 대체
// ex) "aa" -> "bb"
s = s.replace("aa", "bb");
// ex) 여러개의 점을 하나로 대체
s = s.replaceAll("\\.+", "."); // [way 1]
s = s.replaceAll("[.]{2,}", ".") // [way 2]
( 정규식 ☞ https://hyunjiishailey.tistory.com/501 )
▶ 문자열 자르기 / 나누기 ( 파싱 : parsing ) ★
- String.split(String regex)
String s;
String ss[];
// 한 문자씩 자르기
ss = s.split("");
// 공백 문자를 기준으로 자르기
ss = s.split(" "); // 공백 하나 [way 1]
ss = s.split("\s"); // 공백 하나 [way 2]
ss = s.split("\s+"); // 공백 여러 개
// 기호를 기준으로 자르기
ss = s.split("\\."); // 온점 .
// 여러 기호를 기준으로 자르기 ( '|' : or )
ss = s.split("#\\{|\\}"); // MyBatis param - #{val}
- StringTokenizer ( regex( regular expression : 정규식 ) 대신 delim( delimiter : 구분자 ) )
String s;
StringTokenizer st;
// 공백 문자를 기준으로 자르기 (여러 개 포함)
st = new StringTokenizer(s); // 기본 구분자는 공백 " \t\n\r\f" [way 1]
st = new StringTokenizer(s, " "); // [way 2]
// 기호를 기준으로 자르기
st = new StringTokenizer(s, "."); // '.'
st = new StringTokenizer(s, "/"); // '/'
st = new StringTokenizer(s, "#|$"); // '#' or '$'
while (st.hasMoreTokens())
st.nextToken();
▶ 문자열 이어 붙이기 ★
- '+' 연산자 ( 오래 걸림 )
String s1, s2, result;
result = s1 + s2; // 뒤에 이어 붙이기
result = s2 + s1; // 앞에 이어 붙이기
- String.concat(String str)
String s1, s2, result;
result = s1.concat(s2); // 뒤에 이어 붙이기
result = s2.concat(s1); // 앞에 이어 붙이기
- StringBuilder ( StringBuffer 와 비슷하나, 더 빠름 )
String s1, s2, result;
result = new StringBuilder(s1).append(s2).toString(); // 뒤에 이어 붙이기
result = new StringBuilder(s1).insert(0, s2).toString(); // 앞에 이어 붙이기
// 이 외에 delete(), replace(), reverse(), setCharAt() 등 기능도 있음
- StringBuffer ( StringBuilder 와 비슷하나, 스레드 동기화 지원 (멀티 스레드 환경) )
String s1, s2, result;
result = new StringBuffer(s1).append(s2).toString(); // 뒤에 이어 붙이기
result = new StringBuffer(s1).insert(0, s2).toString(); // 앞에 이어 붙이기
▶ 문자열 형식 지정
double d; int n; int m;
// ex) 소수점 m 번째 자리까지 표현
String format1 = String.format("%.3f", d); // ex) 소수점 3 번째 자리
String format2 = String.format("%." + m + "f", d); // ex) 소수점 m 번째 자리
// ex) m 자리로 맞춰 표현 (빈 공간은 0 으로 채움)
String format3 = String.format("%02d", n); // ex) 두 자리 (한 자리 수일 경우 앞에 0)
String format4 = String.format("%0" + m + "d", n); // ex) m 자리
( 형식 문자열 ☞ https://hyunjiishailey.tistory.com/503 )
반응형