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>
액티비티 코틀린 코드
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 아이디, 비밀번호 EditText 및 Button 참조하기
val editTextId = findViewById<EditText>(R.id.editTextId)
val editTextPassword = findViewById<EditText>(R.id.editTextPassword)
val buttonCheck = findViewById<Button>(R.id.buttonCheck)
// 버튼 클릭 리스너 설정
buttonCheck.setOnClickListener {
// 입력된 아이디와 비밀번호 값 가져오기
val enteredId = editTextId.text.toString().trim()
val enteredPassword = editTextPassword.text.toString().trim()
// 입력된 아이디와 비밀번호 형식 검증하기
if (validateId(enteredId) && validatePassword(enteredPassword)) {
Toast.makeText(this, "유효한 형식입니다", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "ID 또는 PW 형식이 유효하지 않습니다", Toast.LENGTH_SHORT).show()
}
}
}
// ID 검증 메서드
private fun validateId(id: String): Boolean {
// ID 정규식: 영어 소문자로 시작하며, 영어 소문자와 숫자 조합이 가능하고 길이 5~15자
val idRegex = "^[a-z][a-z0-9]{4,14}$"
return Pattern.matches(idRegex, id)
}
// 비밀번호 검증 메서드
private fun validatePassword(password: String): Boolean {
// 비밀번호 정규식: 숫자, 대문자, 소문자, 특수 문자 최소 1개씩 포함하며 길이 8~16자
val passwordRegex = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#\$%^&*()_+=!~]).{8,16}$"
return Pattern.matches(passwordRegex, password)
}
}
실행 영상
입력한 문자열에 대해 형식 체크가 되는 것을 확인할 수 있습니다.
'안드로이드 코틀린' 카테고리의 다른 글
[Kotlin][Android] Jetpack Compose 텍스트 작성 중인 상태에 대해 사용자에게 알리기 (0) | 2024.11.27 |
---|---|
[Kotlin][Android] Jetpack Compose 아이템 일괄 삭제하기 (0) | 2024.11.21 |
[Kotlin][Android] Jetpack Compose 아이템 텍스트 수정하기 (0) | 2024.11.15 |
[Kotilin][Android] RatingBar을 사용해서 별점만들기 (2) | 2024.11.12 |
[Kotlin][Android] 디바이스 시간 여러 지역 시간으로 변경하기 (0) | 2024.11.11 |