1.String
String은 하나의 자료형이라기 보다는 클래스라고 이해하는편이 쉽다.
문자형을 배열처럼 나열하여 문자열을 만든게 String이다.
String은 만들때 다양한 메소드들, 생성자들이 구현되어 있다.
- 다양한 초기화 방법
package chap08.exam01.string; public class StringMehod { public static void main(String[] args) { // 문자열 만드는 방법 String str1 = "abcd"; String str2 = new String("abcde"); char[] alphabet = {'a','b','c','d','e','f'}; String str3 = new String(alphabet); System.out.println(str1); System.out.println(str2); System.out.println(str3); } }
- 문자열 길이 (length())
- 특정 인덱스 가져오기 (charAt(n))
- 특정 부분부터 원하는 부분까지 잘라내기 (substring(n1, n2) , 자주 쓰이므로 꼭 알아두자
- 문자 배열을 문자열으로 / 문자열을 문자 배열로 넣기
- 특정 구분자를 기준으로 나누기 (split(""))
- 특정 문자열 찾기 (indexOf("")), (lastIndexOf(""))
package chap08.exam01.string; public class CharArr { public static void main(String[] args) { // 문자열이 배열을 기반으로 해서 가능한 기능 String str = "asdfghj"; String strResult; int intResult; char charResult; // 문자열의 길이 System.out.println(str.length()); // 특정 인덱스 가져오기 System.out.println(str.charAt(3)); // 잘라내기 (자주 씀) strResult = str.substring(1, 5); // asdfghj // 1번 부터 보여주고 5번부터 잘라내라 System.out.println(strResult); // sdfg // 문자열 -> 배열 char[] chararr = str.toCharArray(); System.out.println(chararr); // 배열 -> 문자열 strResult = new String(chararr); System.out.println(strResult); // 특정 구분자를 기준으로 나누기 str = "a|b|c|d|e|f|g"; // 역슬래쉬나 버티컬바와 같은 특수 문자는 문자로 인식이 안됨 String[] strArr = str.split("\\|"); // 이스케이프 문자인 역슬래쉬를 사용 for(String s : strArr) { System.out.println(s); } // 특정 문자열 찾기 str = "asfgdhgvabfkjaffasjkfn"; // 0, 8, 13, 16 int idx = str.indexOf("a"); // 무조건 첫번째 문자만 반환 한다. System.out.println(idx); idx = str.lastIndexOf("a"); // 무조건 뒤에서 부터 첫번째 문자의 인덱스를 반환 한다. System.out.println(str.length() + "중 " + idx + "번째"); // 3개의 a를 모두 찾을 수 있는 방법 // indexOf("찾을 문자", 시작할 인덱스) int a = 0; while(true) { System.out.println(str.indexOf("a", a)); a = str.indexOf("a", a) + 1; if(str.lastIndexOf("a") < a) { break; } } } }
- 같은지 다른지 비교 (equals(""))
- 공백 제거, Excel 자료 불러올 때 쓰임 (trim())
- 특정 문자 포함 여부 (contains(""))
- 특정 문자열로 시작 or 끝나는가?, 파일 형식 알아낼 때 자주 쓰임 (startsWith(""), endWith(""))
- 문자열 교체 (replace(""))
package chap08.exam01.string; public class StringUtil { public static void main(String[] args) { String str = "asdfg"; String strResult; int intResult; boolean boolResult; // 문자열 비교 boolResult = str.equals("abc"); // true | false System.out.println("두 문자가 같습니까? " + boolResult); intResult = str.compareTo("asd"); // 일치하지 않는 갯수 System.out.println("두 문자가 같습니까? " + intResult); // 앞 뒤 공백제거 (excel 자료 불러올 때 종종 쓰임) str = " 가나다라마바사 "; strResult = str.trim(); System.out.println(str); System.out.println(strResult); // 특정 문자 포함 여부 확인(잘 안씀) boolResult = str.contains("다"); System.out.println("'다'를 포함하고 있는가? " + boolResult); // 특정 문자열로 시작 | 끝나는가? str = "[img]uploadFile.png"; boolResult = str.startsWith("[img]"); System.out.println("[img]로 시작되나? " + boolResult); boolResult = str.endsWith("png"); System.out.println("png로 끝나는가? " + boolResult); // 문자열 교체 strResult = str.replace("img", "이미지"); System.out.println("str : " + strResult); } }
- 더해서 넣기
- String Builder
- String Buffer
package chap08.exam02.compare; public class Compare { public static void main(String[] args) { String str = "문자열을 "; // 객체 1개 str += "추가 할 때 마다 "; // 객체 1개 str += "객체가 추가 된다."; // 객체 1개 System.out.println("String : " + str); // Builder나 Buffer는 하나의 객체를 확장하며 사용 StringBuilder builder = new StringBuilder("문자열을 "); builder.append("추가 할 때 마다 "); builder.append("객체의 크기가 늘어 난다."); System.out.println("builder : " + builder); // StringBuffer는 동시 접속을 허용하지 않는다 StringBuffer buffer = new StringBuffer("문자열을 "); buffer.append("추가 할 때 마다 "); buffer.append("객체의 크기가 늘어 난다."); System.out.println("buffer : " + buffer); } }
'개념 및 코딩 > 06.기타' 카테고리의 다른 글
[JAVA]06-06.Generic (0) | 2018.09.03 |
---|---|
[JAVA]06-05.Object (0) | 2018.09.03 |
[JAVA]06-03.Throw 예외처리, 커스텀 예외처리 (0) | 2018.09.03 |
[JAVA]06-02.예외처리 instance of, try catch (0) | 2018.09.03 |
[JAVA]06-01.중첩 클래스, 중첩 인터페이스 (0) | 2018.09.03 |