본문 바로가기
Back-End/Java

Java 예제(2)

by newny 2023. 3. 16.
반응형

String 관련 연습 문제

문1) 이메일 주소에 "@" 문자가 있으면 "@"글자 기준으로 문자열을 분리해서 출력하고, "@"문자가 없다면 '이메일주소 형식이 아닙니다' 를 출력하는 코드를 작성하시오.

String email = new String("webmaster@naver.com");
if(email.contains("@")) {
    StringTokenizer st = new StringTokenizer(email, "@");
    while (st.hasMoreElements()) {
        System.out.println(st.nextToken());
    }
} else {
    System.out.println("이메일주소 형식이 아닙니다");
}

// 다른풀이1 ---------------------------------------------
if(email.indexOf("@") != -1) {
    String[] arr = email.split("@");
    for(int i=0; i<arr.length; i++) {
        System.out.println(arr[i]);
    }
} else {
    System.out.println("이메일주소 형식이 아닙니다");
}

// 다른풀이2 ---------------------------------------------
if(email.indexOf("@") != -1) {
    int pos = email.indexOf("@"); //9
    String id = email.substring(0, pos); // 0인덱스 ~ 9-1인덱스 까지
    String server = email.substring(pos+1); // 10인덱스 ~ 마지막인덱스 까지
    System.out.println(id);
    System.out.println(server);
    }
} else {
    System.out.println("이메일주소 형식이 아닙니다");
}

 
문2) 첨부파일이 이미지 파일(.png, .jpg, gif)일 경우 파일명과 확장자명을 분리하여 출력하고, 첨부파일이 이미지 파일이 아닐 경우 '이미지 파일만 첨부 가능합니다' 를 출력하는 코드를 작성하시오.

String path = new String("d:/frontend/images/sky2023.03.16.jpg");

int lastSlash = path.lastIndexOf("/"); // path에서 마지막 "/" 기호의 인덱스 -> 18
String file = path.substring(lastSlash+1); // 전체파일명

int lastDot = file.lastIndexOf("."); // file에서 마지막 "." 기호의 인덱스 -> 13

String fileName = file.substring(0,lastDot); // 파일명
String ext = file.substring(lastDot+1); // 확장자명

ext = ext.toLowerCase(); // 대문자로 적을 경우를 대비해 소문자로 변환시킴
if(ext.equals("png") || ext.equals("jpg") || ext.equals("gif")) {
    System.out.println("파일명 : " + fileName);
    System.out.println("확장자명 : " + ext);
    System.out.println("이미지 파일이 전송되었습니다");
} else {
    System.out.println("이미지 파일만 첨부 가능합니다");
}

 

반응형

'Back-End > Java' 카테고리의 다른 글

Java(5)  (0) 2023.03.17
Java(4)  (0) 2023.03.16
Java 과제 - 표준편차 구하기  (0) 2023.03.15

댓글