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);
	}

}


+ Recent posts