본문 바로가기
안드로이드 자바

[Java][Android] 문자열 형식 체크하기

by teamnova 2024. 11. 17.
728x90

오늘은 자바코드로 문자열 형식 체크하는 예시를 만들어 보겠습니다.

 

1. 영문자로 시작해야하며, 영문자와 숫자 조합이 가능하고, 글자수가 5~15자인 문자열

2. 숫자, 영어 대문자, 영어 소문자, 특수 문자( @#$%^&*()_+=!~ ) 가 포함되어야 하며, 글자수가 8~16자인 문자열

 

1번 형식을 아이디 형식, 2번 형식을 비밀번호 형식이라 가정하고 진행하겠습니다.

 

 

 

 

 

 

 

액티비티용 레이아웃 xml 파일 코드 (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <!-- 아이디 입력 -->
    <EditText
        android:id="@+id/editTextId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="ID 입력"
        android:inputType="text" />

    <!-- 비밀번호 입력 -->
    <EditText
        android:id="@+id/editTextPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="PW 입력"
        android:inputType="textPassword"
        android:layout_marginTop="8dp" />

    <!-- 형식 체크 버튼 -->
    <Button
        android:id="@+id/buttonCheck"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="형식 체크하기"
        android:layout_marginTop="16dp" />
</LinearLayout>

 

 

 

액티비티 자바 코드

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 아이디, 비밀번호 EditText 및 Button 참조하기
        EditText editTextId = findViewById(R.id.editTextId);
        EditText editTextPassword = findViewById(R.id.editTextPassword);
        Button buttonCheck = findViewById(R.id.buttonCheck);

        // 버튼 클릭 리스너 설정
        buttonCheck.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 입력된 아이디 와 비밀번호 값 가져오기
                String enteredId = editTextId.getText().toString().trim();
                String enteredPassword = editTextPassword.getText().toString().trim();

                // 입력된 아이디 와 비밀번호 형식 검증하기
                if (validateId(enteredId) && validatePassword(enteredPassword)) {
                    Toast.makeText(MainActivity.this, "유효한 형식입니다", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(MainActivity.this, "ID 또는 PW 형식이 유효하지 않습니다", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

    // 아이디 검증 메서드
    private boolean validateId(String id) {
        // 아이디 정규식: 영어 소문자로 시작하며, 영어 소문자와 숫자 조합이 가능하고 길이 5~15자
        String idRegex = "^[a-z][a-z0-9]{4,14}$";
        return Pattern.matches(idRegex, id);
    }

    // 비밀번호 검증 메서드
    private boolean validatePassword(String password) {
        // 비밀번호 정규식: 숫자, 대문자, 소문자, 특수 문자 최소 1개씩 포함해야 하며 길이 8~16자
        String passwordRegex = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&*()_+=!~]).{8,16}$";
        return Pattern.matches(passwordRegex, password);
    }
}



 

 

 

 

 

 

 

 

실행 영상

 

문자열 형식 체크가 되는 것을 확인할 수 있습니다.