String 메소드 활용 3번째 시간입니다.
.
파일이 주어졌을때 확장자를 확인하는 방법과 계좌번호가 주어졌을 때 특정 번호를 확인하는 방법입니다.
.
예제1
- 접근방법
확장자는 맨 뒤에 있는 점을 기준으로 확인할 수 있습니다.
그 점의 위치를 찾아서 뒤에 있는 확장자 명이 원하는 확장자 명인지 확인합니다.
class StringEx3
{
public static void main(String[] args)
{
String file1 = "abcd.jpg";
String file2 = "abcd.gif";
String file3 = "abcd.zip";
String file4 = "abcd.jpeg";
String file5 = "abcd.png";
String file6 = "abcd.html";
//파일이름을 받아 이밎파일인지 여부를 출력
isImgFile(file1); // 이미지 파일입니다.
isImgFile(file2); // 이미지 파일입니다.
isImgFile(file3); // 이미지 파일이 아닙니다.
isImgFile(file4); // 이미지 파일입니다.
isImgFile(file5); // 이미지 파일입니다.
isImgFile(file6); // 이미지 파일이 아닙니다.
}
public static void isImgFile(String file){
int dotIndex = file.lastIndexOf(".") + 1;
//System.out.println(dotIndex);
String extenName = file.substring(dotIndex);
if (extenName.equals("jpg") || extenName.equals("gif") || extenName.equals("jpeg") || extenName.equals("png"))
{
System.out.println(file + "은 이미지 파일입니다.");
}else{
System.out.println(file + "은 이미지 파일이 아닙니다.");
}
}
}
.
예제2
- 접근 방법
계좌번호가 주어졌을 때 특정 위치에 번호를 확인하는 것은 하이픈('-')을 기준으로 확인할 수 있습니다.
class StringEx3
{
public static void main(String[] args)
{
//계좌번호의 세번째 숫자묶음을 출력
String at1 = "10-102-111-456";
String at2 = "101-32-2411-789";
//System.out.println(at1.indexOf("-"));
printNum(at1);
printNum(at2);
printNumEx(at1);
printNumEx(at2);
}
public static void printNumEx(String at){
int hipenIndex1 = at.indexOf("-") + 1;
//System.out.println(hipenIndex1);
String secondStartNum = at.substring(hipenIndex1);
//System.out.println(secondStartNum);
int hipenIndex2 = secondStartNum.indexOf("-") + 1;
String thirdStartNum = secondStartNum.substring(hipenIndex2);
//System.out.println(thirdStartNum);
int hipenIndex3 = thirdStartNum.indexOf("-") + 1;
String thirdNum = thirdStartNum.substring(0, hipenIndex3 - 1);
System.out.println(at + "의 3번째 계좌번호 묶음은 " + thirdNum + " 입니다.");
}
public static void printNum(String at){
int n1 = at.indexOf("-"); // 첫번째 하이픈 위치
int n2 = at.indexOf("-", n1 + 1); // 두번째 하이픈 위치
int n3 = at.indexOf("-", n2 + 1); // 세번째 하이픈 위치
String num = at.substring(n2 + 1, n3);
System.out.println(num);
}
}
printNumEx 부분은 무식하게 앞에서부터 지워나가는 방법을 생각했지만, indexOf()에서 특정 위치부터 확인할 수 있는 방법을 사용할 수 있다.
그래서 printNum 부분을 다시 생각해봤다.
무식하게 생각하고 나중에 더 효율적인 방법을 확인하는 법을 공부해야할거같다.
728x90
반응형
'Java > 본격 Java 스트링' 카테고리의 다른 글
[Java] String 메소드 활용 2 (0) | 2020.06.26 |
---|---|
[Java] String 메소드 활용1 (0) | 2020.06.26 |
[Java] String 메소드 (0) | 2020.06.26 |
[Java] 오버로딩(overloading) (0) | 2020.06.26 |