본문 바로가기

Java/본격 Java 스트링

[Java] String 메소드 활용 3

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