글 작성자: 취업중인 피터팬
728x90
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

목표

자베에서 String으로 제공되는 함수들에 대해 이해한다.


 

 

코드
package ex07string;

public class E02StringMethod {

	public static void main(String[] args) {
		System.out.println("String 클래스의 주요 메소드");
		
		String str1 = "Welcome to Java";
		String str2 = "자바야 놀자!";
		
		/*
		 1]  lenght()
		 		:문자열의 길이를 반환한다.
		 */
		
		System.out.println("str1의 길이 : " + str1.length());
		System.out.println("str2의 길이 : " +  str2.length());
		
		/*
		 2] charAt(인덱스)
		 		: 문자열에서 특정 index에 해당하는 문자 하나를 반환한다. index는 0부터 시작한다.
		 */
		
		System.out.println("str1의 두번째 문자 : " + str1.charAt(1));
		System.out.println("str2의 두번째 문자 : " + str2.charAt(1));
		
		/*
		시나리오] 주민등록번호를 이용하여 성별을 판단하는 프로그램을 작성하시오
		190419-3000000=> 남자
		190419-4000000=> 여자
		 */
		
		String juminNum = "190419-5000000";
		if(juminNum.charAt(7) == '1' || juminNum.charAt(7) == '3') {
			System.out.println("남자입니다.");
		}
		else if(juminNum.charAt(7) == '2' || juminNum.charAt(7) == '4') {
			System.out.println("여자입니다.");
		}
		else if(juminNum.charAt(7) == '5' || juminNum.charAt(7) == '6') {
			System.out.println("외국인입니다.");
		}
		else {
			System.out.println("주민번호가 잘못되었습니다.");
		}
		
		/*
		 4] compareTo()
		 	:두 문자열을 첫번째 문자부터 순차적으로 비교하면서 앞의 문자열의 아스키코드가 크면 양수
		 		뒤에 문자열의 아스키코드가 크면 음수를 반환 같으면 0을 반환한다.
		 */
		String str3 = "A";
		String str4 = "B";
		System.out.println(str3.compareTo(str4));
		System.out.println(str4.compareTo(str3));
		System.out.println("ABC".compareTo("ABC") == 0 ? "문자열이 같다" : "문자열이 다르다");
		
		
		/*
		 5] concat()
		 	: 두개의 문자열을 연결할때 사용한다. + 기호와 동일한 역할을 한다.
		 */
		System.out.println("JAVA".concat("WORLD").concat(" GO"));
		System.out.println("JAVA" + "WORLD" + "GO");
		
		/*
		 6] contains() 
		 		: 문자열에 특정 문자열이 포함되어 있는지를 판단하여 포함되어 있으면
		 		true를 반환한다.
		 */
		System.out.println(str1.contains("To"));
		System.out.println(str1.contains("to"));

		/*
		시나리오] 해당 문자열이 이메일 형식이닞 검사하는 프로그램을 작성하시오.
		hong@ikosmo.co.kr => 이메일형식임
		not@naver => 이메일형식이 아님
		 */
		
//		String email = "hong@ikosmo.co.kr";
		String email = "not@naver";
		if(email.contains("@") && email.contains(".")) {
			System.out.println("이메일 형식임");
		}else {
			System.out.println("이메일 형식이 아님");
		}
		
		/*
		7] endsWith()
			: 문자열이 특정 문자열로 끝나면 true, 아니면 false를 
			반환한다. 
		8] startWith()
		 	: 특정 문자열로 시작하면 true를 반환한다.
		 */
		
		System.out.println("www.daum.net".endsWith("net"));
		System.out.println("naver.com".startsWith("http"));
		
		/*
		 9]format()
		 		: 출력형식을 지정하여 문자열로 반환하고 싶을때 사용함.
		 		print()와 사용법은 동일하고 주로 웹어플리케이션(JSP)를 제작할때 많이 사용된다.
		 */
		System.out.printf("국어: %d, 영어 : %d, 수학 : %d\n", 81, 92, 100);
		String formatStr = String.format("국어: %d, 영어 : %d, 수학 : %d\n", 81, 92, 100);
		System.out.println(formatStr);
		
		/*
		10] indexOf()
			: 문자열에서 특정 문자열의 시작인덱스를 반환한다.
			만약 찾는 문자열이 없다면 -1을 반환한다.
		 */
		
		System.out.println(str1.indexOf("ava"));
		System.out.println(str1.indexOf("j"));
		System.out.println(str1.indexOf("@")!= -1 ? "이메일 형식 맞음" : "이메일 형식 아님");
		
		/*
		 시나리오] 주민등록번호를 indexOf를 사용하여 성별을 구분하는 프로그램을 작성하시오.
		 */
		
		//'-'(하이픈)의 위치를 찾아 +1하면 성별에 해당되는 문자를 얻을 수 있음.
		juminNum = "120403-3012345";
		
		int index = juminNum.indexOf("-") + 1;
		if(juminNum.charAt(index) == 3) {
			System.out.println("남자");
		}
		else {
			System.out.println("여자");
		}
		
		/*
		 11] lastIndexOf()
		 	: 사용법은 indexOf()와 동일하나 문자열의 뒤에서부터
		 	문자열을 찾아서 인덱스를 반환한다.
		 	
		 */
		
		System.out.println(str1.lastIndexOf("ava"));
		System.out.println(str1.lastIndexOf("j"));
		System.out.println("indexof" + str1.indexOf("a"));
		System.out.println("lastIndexOf : " + str1.lastIndexOf("a"));
		
		
		/*
		 12] replace
		 	: 특정 문자열을 찾아서 지정된 문자열로 변경한다.
		 	만약 찾는 문자열이 없다면 변경만 되지 않을뿐 에러가
		 	발생하지는 않는다.
		 */
		
		System.out.println("J를 G로 변경하기");
		System.out.println(str1.replace("J", "G"));
		System.out.println("java를 KOSMO로 변경하기");
		System.out.println(str1.replace("java" , "KOSMO"));
		
		/*
		 13] split()
		 	: 문자열을 구분자를 통해 분리해서 String 타입의 배열로
		 	반환한다. 해당 구분자가 없는 경우에는 크기가 1인 배열로 반환된다.
		 */
		
		String phoneNumber = "010-1234-5678";
		String[] phoneArr = phoneNumber.split("-");
		for(int i = 0; i < phoneArr.length; i++) {
			System.out.printf("phoneArr[%d] = %s \n", i, phoneArr[i]);
		}
		
		/*
		 14] substring()
		 	: 시작인덱스와 끝 인덱스 사이의 문자열을 잘라서 반환해줌.
		 	즉 문자열을 자를때 사용하는 매소드임. 
		 	사용1 : subString(index) -> 이경우 index부터 문자열의 끝까지를 잘라서 반환함
		 	사용2 : subString(index1, index2) -> 인덱스에 포함되는 부분만 잘라서 반환함.
		 */
		
		System.out.println(str1.substring(3));
		System.out.println(str1.substring(3, 7));
		
		
		
		/*
		 시나리오] 다음 파일명에서 확장자를 잘라내는 프로그램을 작성하시오.
		 파일명 : my.file.images.jpg
		 */
		
		String filename = "my.file.images.jpg";
		int beginIndex = filename.lastIndexOf(".") + 1;
		System.out.println("파일의 확장자는 : " + filename.substring(beginIndex));
		
		
		
		
	}

}

 

1]  lenght()
  :문자열의 길이를 반환한다.

2] charAt(인덱스)
  : 문자열에서 특정 index에 해당하는 문자 하나를 반환한다. index는 0부터 시작한다.

3] compareTo()
  :두 문자열을 첫번째 문자부터 순차적으로 비교하면서 앞의 문자열의 아스키코드가 크면 양수
  뒤에 문자열의 아스키코드가 크면 음수를 반환 같으면 0을 반환한다.

4] concat()
  : 두개의 문자열을 연결할때 사용한다. + 기호와 동일한 역할을 한다.

5] contains() 
  : 문자열에 특정 문자열이 포함되어 있는지를 판단하여 포함되어 있으면
  true를 반환한다.

6] endsWith()
: 문자열이 특정 문자열로 끝나면 true, 아니면 false를 
반환한다. 
7] startWith()
  : 특정 문자열로 시작하면 true를 반환한다.

8]format()
  : 출력형식을 지정하여 문자열로 반환하고 싶을때 사용함.
  print()와 사용법은 동일하고 주로 웹어플리케이션(JSP)를 제작할때 많이 사용된다.

9] indexOf()
: 문자열에서 특정 문자열의 시작인덱스를 반환한다.
만약 찾는 문자열이 없다면 -1을 반환한다.

10] lastIndexOf()
  : 사용법은 indexOf()와 동일하나 문자열의 뒤에서부터
  문자열을 찾아서 인덱스를 반환한다.

11] replace
  : 특정 문자열을 찾아서 지정된 문자열로 변경한다.
  만약 찾는 문자열이 없다면 변경만 되지 않을뿐 에러가
  발생하지는 않는다.

12] split()
  : 문자열을 구분자를 통해 분리해서 String 타입의 배열로
  반환한다. 해당 구분자가 없는 경우에는 크기가 1인 배열로 반환된다.

13] substring()
  : 시작인덱스와 끝 인덱스 사이의 문자열을 잘라서 반환해줌.
  즉 문자열을 자를때 사용하는 매소드임. 
  사용1 : subString(index) -> 이경우 index부터 문자열의 끝까지를 잘라서 반환함
  사용2 : subString(index1, index2) -> 인덱스에 포함되는 부분만 잘라서 반환함.

 

 

String을 쓸때 응용할 수 있는 여러가지 함수들이다. 주석에 있는대 왜 다시 똑같은 걸 다시 썼냐고 물어보면 이렇게 해야 들어오는 사람이 많다. 딱히 유입 통계를 신경쓰지는 않지만 그래도 today가 높으면 기분이 좋으니깐 ㅎ

 

 

결과 값

 

'Java > Java_기초부터 _끝까지' 카테고리의 다른 글

Java 기초 class(1) - 추상화  (0) 2020.11.05
Java 기초 StringBuffer  (0) 2020.10.27
Java 기초 String  (0) 2020.10.27
Java 기초 배열 - 연습문제(6)  (0) 2020.10.26
Java 기초 배열 - 연습문제(5)  (0) 2020.10.26