너와 나의 프로그래밍
JAVA - 문자열 본문
[JAVA] 문자열
1. 문자열을 연결하는 경우!
※ StringBuilder는 스레드 동기화 처리가 되지 않는 대신 StringBuffer보다 고속으로 동작한다. 여러 스레드가 조작될 경우 StringBuffer를 사용한다.
● "+" 연산자로 연결하는 경우 = String str = "안녕" + "하세요"
● StringBuilder나 StringBuffer를 사용하는 경우
StringBuilder sb = new StringBuilder();
sb.append("Hello"); // append 메소드로 연결할 수 있다.
sb.append("World");
String str = sb.toString(); // //toString 메소드로 String 객체로 변환할 수 있다.
● Join 메소드를 사용하는 경우
String str1 = String.join("-", "안녕","하세요"); // 가변 길이를 인수로 지정해 문자열을 연결
List<String> list = Arrays.asList("Java", "8", "is", "great!");
String str2 = String.join(" ", list); // List로 저장된 문자열을 연결
2. 문자열을 길이를 구하는 경우!
String str = "Hello World"
int str_length = str.length() // length 메소드로 길이를 조사
● 문자열의 바이트 길이를 구하는 경우
String str = "Hellow World"
int euckrLength = str.getBytes("EUC-KR").length
// getBytes 메소드로 바이트 배열로 변환하고 length 메소드로 길이를 구한다.
3. 문자열의 일부를 구하거나 문자열을 나누기!
● substring(int beginIndex, int endIndex)
String str = "Hellow World"
String result1 = str.substring(0) // 1번째 매개변수만 지정한 경우에는 지정한 인덱스부터 쭉~ 반환!
String result2 = str.substring(1, 2)
// 2번째 매개변수 까지 지정한 경우에는 첫번째 지정한 인덱스부터 마지막 지정한 인덱스 까지를 반환~
● split(String regex, int limit)
String str = "A,B,C,"
String[] result = str.split(",", 4)
// 보통은 배열의 끝에 빈 문자열은 포함되지 않지만, 최대 요소 수를 지정한 경우에는 끝의 요소가 빈 문자열인 경우에도 분할 후 배열에 포함.
4. 문자열을 비교하기!
● equals(Object anObject), equalsIgnoreCase(String anotherString)
String str = "Hello Java"
boolean = str.equals("Hello Java") // 문자열과 비교했을 때 같으면 "true" 다르면 "false" 값을 반환.
boolean = str.equalsIgnoreCase("Hello Java") // 대소문자의 구분 없이 같으면 "true" 다르면 "false" 값을 반환
5. 문자열 바꾸기!
● replace(char oldChar, char new Char)
String str = "Hello Java"
String result = str.replace("Hello", "Hi") // 앞은 이전 문자열, 뒤는 바꾸고 싶은 문자열
5. 특정 문자열의 시작과 끝을 알아보자!
● startsWith(String prefix), endsWith(String suffix)
String str = "Hello Java"
String start = str.startsWith("Hello") // 문자열이 "Hello"로 시작하면 "true" 다르면 "false"
String end = str.endWith("Java") // 문자열이 "Java"로 끝나면 "true" 다르면 "false"
6. 특정 문자열의 포함 여부를 알아보자!
● indexOf(int ch, [int fromIndex]), lastIndexOf(int ch, [int fromIndex])
String str = "Hello Java"
int indexOf1 = str.indexOf("Hello") // 앞부분부터 문자열을 검색하면서 처음에 찾은 문자열의 인덱스를 반환
int indexOf2 = str.indexOf("Java", 5) // 2번째 인수를 지정하는 경우 지정한 인덱스 부터 문자열을 검색
int indexOf3 = str.indexOf("Hi") // 문자열에 포함되어 있지 않은 경우 "-1" 포함된 경우 "0"을 반환(int 형)
int lastIndexOf1 = str.lastIndexOf("Hello") // 문자를 뒤에서 부터 검색
7. 대문자와 소문자를 변환하기!
● toUpperCase(), toLowerCase()
String str = "Hello Java"
String Upper = str.toUpperCase() // 문자열을 전부 대문자로 변환
String Lower = str.toLowerCase() // 문자열을 전부 소문자로 변환
8. 문자열 앞 뒤 공백, 탭, 개행을 삭제하기!
● trim()
String str = " Hello Java "
String result = str.trim() // 앞 뒤의 공백은 삭제 되지만 문자열 내의 공백은 삭제되지 않는다.
9. 문자열에 형식화(변수값 넣기)!
● format(String format, Object... args)
String str = "String"
String result = String.format("문자열 서식 : %s", str)
// format에 지정할 수 있는 서식은 구글에서 찾아보자... 서식 앞에 "%"를 붙여 사용한다.
Date now = new Date()
String date = String.format("%tY년 %<td일 %<tM분 %<tS초", now)
// "%<"를 사용하면 상대 인덱스를 지정하고 직전의 인수를 지정할 수 있다.
10. 문자 코드를 변경하기!
● getBytes(Charset charset), Charset, StandardCharsets(java7 이상)
byte[] bytes = "Hello Java".getBytes("UTF-8")
// 문자 코드를 변환하지 않고 바이트 배열을 구함
Charset cs = Charset.forName("UTF-8")
byte[] bytes = "Hello Java".getBytes(cs);
// 문자 코드를 지정하고 바이트 배열을 구함
byte[] bytes = "Hello Java".getBytes(StandardCharsets.UTF_8);
// Java 7 이후 버전만 가능. 지정할 수 있는 문자코드가 한정되어 있음(이것도 구글에서...)
참고 : 예제가 가득한 JAVA
'Back-End > Java Example' 카테고리의 다른 글
JAVA - 정규식으로 문자열 찾기 (0) | 2018.05.25 |
---|---|
JAVA - HashMap, HashSet 간략 정리 (2) | 2018.02.22 |
JAVA - ArrayList, LinkedList 간략 정리 (0) | 2018.02.21 |
JAVA - Active Directory(LDAP) 연결 예제 소스 (0) | 2017.09.22 |