SSISO Community

시소당

자바 영문과숫자조합..

안녕하세요..

자바  로그인  하는  부분인데  pass에서  영문과  숫자  조합으로만  할수  있게

조건을  걸으려고  합니다.    정규화를  써서...

추가적으로  다른방법으로  코딩한것도  포함해주시면  ㄳ~^^

class  LoginTest{
  public  static  void  main(String[]  args){
                System.out.println("Id를  입력하세요");
    String  id=MyUtil.getString();
    System.out.println("Pass를  입력하세요");
    String  pass=MyUtil.getString();
    int  len  =  id.length();
    int  leng  =  pass.length();
    if(len>=6  &&  len<=8)
          {
      if(leng>=6  &&  leng<=8)
                    {
      if(id.matches("\\w*"))
            {
      System.out.println("입력하신  id는"+id);
                      if  (pass.matches("\\w.*"))
                            {
            if(pass.contains("\\d+")  &&  ((pass.contains("\\[a-z]+")  ||  pass.contains("\\[A-Z]+"))))
            {
                                      pass=pass.replaceAll(".","*");  //.은  개행문자를  제외한  아무문자  하나를  지칭,  .를  표기하기  위해서는  \\.으로  표기
                  System.out.println("입력하신  pass는"+pass);
                        }
            else
                      {        
                    System.out.println("pass조건2는  숫자와  영문자를  조합하세요");
                      }
                }
      else
                      {
                System.out.println("pass는  숫자와  영문자를  조합하세요");
                      }
      }
      else
                      {
                System.out.println("숫자또는  영문자로  하세요");
                      }
      }
      else
        {
                            System.out.println("Pass를  6자이상  8자이하로  입력해주세요");
              }
            }
      else
        {
                            System.out.println("  ID를  6자이상  8자이하로  입력해주세요");
              }
            
      }
}

  

  //id는  영문이나  숫자로  5~8제한  pass는  영문숫자조합  5~8제한
  //pass  는  출력에서  *****로  바꾸어  줄것

-----------------------------------------------------------------------------------------------------



5.0버젼이면  Scanner와  Pattern을  이용하여  아래와  같이  하시면  됩니다.

  

import  java.util.Scanner;
import  java.util.regex.Pattern;

class  LoginTest{
    public  static  void  main(String[]  args){
        Scanner  scan=new  Scanner(System.in);
        Pattern  plen=Pattern.compile(".{5,8}");    //길이
        Pattern  patt=Pattern.compile("[\\w&&[^_]]+");    //혼용
        Pattern  pnum=Pattern.compile("[\\d]+");    //0-9
        Pattern  pstr=Pattern.compile("[a-zA-Z]+");    //a-zA-Z

        System.out.println("Id를  입력하세요");
        String  id=scan.next();
        System.out.println("Pass를  입력하세요");
        String  pass=scan.next();

        if  (plen.matcher(id).matches())  {
            if  (plen.matcher(pass).matches())  {
                if  (pnum.matcher(id).matches()  ||  pstr.matcher(id).matches())  {
                    if  (patt.matcher(pass).matches()  &&  !pnum.matcher(pass).matches()  &&  !pstr.matcher(pass).matches())  {
                        pass=pass.replaceAll(".","*");
                        System.out.println("입력하신  pass는  "+pass);
                    }  else  System.out.println("pass는  숫자와  영문자를  조합하세요");
                }  else  System.out.println("ID는  숫자  또는  영문자로  하세요");
            }  else  System.out.println("Pass를  6자이상  8자이하로  입력해주세요");
        }  else  System.out.println("  ID를  6자이상  8자이하로  입력해주세요");
    }
}


출처  :  http://kin.naver.com/detail/detail.php?d1id=1
&dir_id=10106&eid=DT3Hbz8vYvif5KS8e4Y33m/k+5m7nteK&qb=wNq52SBtYXRjaGVy

550 view

4.0 stars