JAVA : length, length()의 차이/substring, split 사용법/문자열 자르기/문자열 추출

length : 배열의 길이 / length() : 문자열의 길이

		String a[] = {"a","b","c","d","e"}; //배열 a
		String b = "abcde"; //문자열 b
		
		System.out.println(a.length);	// 출력 결과 : 5
		System.out.println(b.length());	// 출력 결과 : 5

substring 사용방법 -> substring는 문자열에서 사용할 수 있습니다.

형식1 : substring(int beginIndex);

: 시작 지점부터 끝까지 출력

		// 문자열 a
		String a = "가나다라마바사";
		System.out.println(a.substring(2)); // 결과 : 다라마바사

해석 : 2번째 인덱스 부터 시작해서 끝까지 출력

-> 끝 위치를 지정하지 않으면, 시작위치부터 끝까지 출력

-> 인덱스는 0번부터 시작하기 때문에 "가"는 인덱스 1번이 아닌 0번째인 사실을 잊지말자!

 

형식2 : substring(int beginIndex, int endIndex);

: 시작 지점부터 끝 위치 전까지 출력(end_idx 출력 X)

		// [형식2 예제]
		String a = "가나다라마바사";
		System.out.println(a.substring(2,5)); // 결과 : 다라마

해석 : 2번째 인덱스 부터 시작해서 5번째 인덱스 전까지 출력

-> 간단히 해서 2이상 5미만 사이의 값 출력

 

[활용1 : 전화번호 뒤 4자리만 추출]

		String phone = "01012345678";
		String start = phone.substring(phone.length()-4, phone.length());
		System.out.println(start); // 결과 : 5678

-> 처음 인덱스는 0번째 부터 시작 하지만, 끝에서부터 인덱스를 시작하면 -1, -2, -3... 로 사용할 수 있습니다.

-> 즉 "8"은 -1번째, "7"은 -2번째...


split 사용방법 -> 특정문자 기준으로 문자열을 잘라서 배열로 만들 수 있습니다.

형식 : 문자열변수명.split(regex);

-> regex : 문자열을 자르는 기준이 되는 것

		String A = "010-1234-5678";
		String[] arr = A.split("");
		//String[] arr = A.split("-");
        
		for(int i=0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}

-> A.split("") : regex자리에 기본으로 ""이 들어갈 경우, 한글자씩 쪼개서 배열로 만듭니다.

-> for문을 통해 배열 arr의 i번째에 어떤 글자가 들어가 있는지 출력합니다.

 

차이를 아시겠나요?!

좌측은 처음 예시처럼 A.split("");을 통해서 모든 문자열을 쪼개서 배열로 넣고 출력한 결과이고,

우측은 A.split("-"); 을 통해서, "-" 라는 문자를 기준으로 문자열을 쪼개서 배열에 넣은 결과 입니다.

 

그림으로 보니까 어떻게 문자들이 들어갔는지 조금더 보기 쉽죠?!

이해되셨길 바랍니다!

 

부족한부분, 추가 활용법은 계속해서 업데이트 하도록 하겠습니다.