FIF's 코딩팩토리

자바 기초 NCS교육과정(27)-정규식 문제풀이 본문

Back-End/국비 NCS교과과정

자바 기초 NCS교육과정(27)-정규식 문제풀이

FIF 2019. 7. 31. 14:53
반응형

이번 시간은 문제풀이 시간 입니다.

코드를 바로 보지 마시고, 충분한 시간을 가지고 고민해 보세요!

생각하는 시간이 많을수록 실력은 향상됩니다.

 

 

 

 

Question 1) Prob001_RegExp.java

 

[출력결과]

Samsung 상품 정보
제품번호 : PROD-00001, 제품명 : 갤럭시S, 수량 : 5, 가격 : 940000

 

public class Prob001_RegExp {

	public static void main(String[] args) {
		String msg = "PROD-00001**Samsung**갤럭시S**5**940000";
		Product prod = createProduct(msg);
		System.out.println(prod.getMaker() + " 상품 정보");
		System.out.println(prod.toString());
	}//end main()

	private static Product createProduct(String message) {
		//매개변수로 들어온 문자열을 적절히 이용하여 
		//Product 객체를 생성후 리턴하는createProduct() 메서드를 구현하시오.
        
		Product a = new Product();
	
		
       return a;
	}// end creatProduct
}//end class

 

Product.java

class Product {
	private String productId;
	private String maker;
	private String name;
	private int amount;
	private int price;

	public String getProductId() {
		return productId;
	}

	public void setProductId(String productId) {
		this.productId = productId;
	}

	public String getMaker() {
		return maker;
	}

	public void setMaker(String maker) {
		this.maker = maker;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAmount() {
		return amount;
	}

	public void setAmount(int amount) {
		this.amount = amount;
	}

	public int getPrice() {
		return price;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	@Override
	public String toString() {
		return "제품번호 : " + productId + ", 제품명 : " + name + ", 수량 : " + amount + ", 가격 : " + price;
	}
}

 

 

 

 

 

 

 

 

 

 

Answer 1) Prob001_RegExp.java

public class Prob001_RegExp {

	public static void main(String[] args) {
		String msg = "PROD-00001**Samsung**갤럭시S**5**940000";
		Product prod = createProduct(msg);
		System.out.println(prod.getMaker() + " 상품 정보");
		System.out.println(prod.toString());
	}//end main()

	private static Product createProduct(String message) {
		//힌트 String->int : Integer.parseInt("10");
		String[] arr=message.split("[*]{2}");
		Product pt=new Product();
		pt.setProductId(arr[0]);
		pt.setMaker(arr[1]); 
		pt.setName(arr[2]);
        pt.setAmount(Integer.parseInt(arr[3]));  
        pt.setPrice(Integer.parseInt(arr[4]));

		//제품번호 : PROD-00001, 
		//제품명 : 갤럭시S, 
		//수량 : 5, 
		//가격 : 940000
		return pt;
	}// end creatProduct
}//end class

출력결과

 

 

 

 

Question 2) Prob002_RegExp.java

 

 아이디를 입력할때 영문자,숫자 조합으로 합니다. 
 최소 5자이상 10자이하까지만 가능합니다.
  (반드시 영문자로 시작한다.)
 

[출력결과]
   로그인 되었습니다.
   회원이 아닙니다.

 

public class Prob002_RegExp {

	public static void main(String[] args) {
		System.out.print("ymy232");
		display(process("ymy232"));		

		System.out.print("korea");
		display(process("korea"));
	}// end main()
    
	public static boolean process(String sn) {
			//여기를 구현하세요!	
			
		
	}// end process()
	
	public static void display(boolean res) {
		if (res) {
			System.out.println(" 로그인이 되었습니다.");
		} else {
			System.out.println(" 회원이 아닙니다.");
		}
	}// end display()

}//end class

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Answer 2) Prob002_RegExp.java

public class Prob002_RegExp {

	public static void main(String[] args) {
		System.out.print("ymy232");
		display(process("ymy232"));		

		System.out.print("korea");
		display(process("korea"));
	}// end main()
	public static boolean process(String sn) {
		// 여기를 구현하세요.
		
		return sn.matches("[a-zA-Z][a-zA-Z0-9]{4,9}") && 
				Pattern.compile("\\d").matcher(sn).find();
		
	}// end process()
	
	public static void display(boolean res) {
		if (res) {
			System.out.println(" 로그인이 되었습니다.");
		} else {
			System.out.println(" 회원이 아닙니다.");
		}
	}// end display()

}//end class

출력결과

반응형
Comments