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