-
반응형
안녕하세요, 하루플스토리 입니다.
앞으로 이 게시판은 혼자 안드로이드 스튜디오 공부하면서 사용할 공간입니다.
혼자 공부하면서 다른분들도 함께 볼 수 있도록 공유하려 합니다.
소스코드는 복사 붙이기 가능하도록 공유할테니 사용하시고 모르는 부분은 댓글에 질문 남겨주세요
아는 부분은 답변해드리겠습니다!
안드로이드 스튜디오 '메이플 닉네임 생성기' 앱 개발중 랜덤문자 생성 및 TextView 출력
먼저 글자를 랜덤으로 생성하는 방법은 여러가지가 있으나 저는 두가지 방법을 올려보겠습니다.
1. 아스키코드로 한글 문자 랜덤 생성하기.
일단 랜덤을 사용하므로
import java.util.Random;
import 해줍니다.
//랜덤생성 가즈아아 Random rnd = new Random(); final String random_name_1 = String.valueOf((char) ((int) (rnd.nextInt(11171))+44032)); //한글 랜덤 문자 1 final String random_name_2 = String.valueOf((char) ((int) (rnd.nextInt(11171))+44032)); //한글 랜덤 문자 2 final String random_name_3 = String.valueOf((char) ((int) (rnd.nextInt(11171))+44032)); //한글 랜덤 문자 3 final String random_name_4 = String.valueOf((char) ((int) (rnd.nextInt(11171))+44032)); //한글 랜덤 문자 4 final String random_name_5 = String.valueOf((char) ((int) (rnd.nextInt(11171))+44032)); //한글 랜덤 문자 5 final String random_name_6 = String.valueOf((char) ((int) (rnd.nextInt(11171))+44032)); //한글 랜덤 문자 6
메이플스토리 닉네임이 최대 6글자 이므로 random_name 변수를 6개 선언해주었습니다. 잠시뒤에 TextView에 출력할 때 이 문자들을 묶어주어야겠죠?
아스키코드에서 한글이 44032번째 부터 시작하고 아스키코드의 한글 갯수가 11171개 입니다.
//닉네임 생성하기 버튼 final Button make_name = (Button) findViewById(R.id.make_name); make_name.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view){ Toast.makeText(getApplicationContext(),"닉네임 랜덤 생성", Toast.LENGTH_LONG).show(); TextView text_make_name = (TextView)findViewById(R.id.text_make_name); text_make_name.setText(String.valueOf(random_name_1+random_name_2+random_name_3+random_name_4+random_name_5+random_name_6)); } });
닉네임 생성하기 버튼은 TextView로 레이아웃 id는 'makename' 입니다.
총 6글자를 합치려고 하니 '+' 로 random_name 을 위 소스코드 처럼 합쳐주면 되겠죠.
2. 아스키 코드로 영어 대, 소문자 랜덤 생성하기
만약 영어 대, 소문자를 랜덤변수로 문자로 가져오고 싶다면
Random rnd = new Random(); final String random_name_1 = String.valueOf((char) ((int) (rnd.nextInt(26))+97)); //영어 소문자 a-z final String random_name_2 = String.valueOf((char) ((int) (rnd.nextInt(26))+65)); //영어 대문자 A-Z
알파벳 갯수가 26개이고 아스키코드 시작 부분을 지정해주면 됩니다.
알파벳은 사실 별 이상이 없는데 한글은 아스키코드표에 이상한 문자가 너무 많습니다.
사실상 사용하지 않는 '꽗뚫껡' 뭐.. 이런 문자들이 전부 포함되어 있어서 사용자들이 '이거뭐야....' 생각할 수 있겠죠.
약간의 노가다가 필요하지만 배열처럼 생성해서 사용하려 합니다.
3. 문자열에서 문자 랜덤으로 하나 출력하기
//문자열에서 하나를 랜덤으로 출력 Random rand = new Random(); final String hangul = "가나다"; final char rand_text = hangul.charAt(rand.nextInt(hangul.length())); //닉네임 생성하기 버튼 final Button make_name = (Button) findViewById(R.id.make_name); make_name.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view){ Toast.makeText(getApplicationContext(),"닉네임 랜덤 생성", Toast.LENGTH_LONG).show(); TextView text_make_name = (TextView)findViewById(R.id.text_make_name); text_make_name.setText(String.valueOf(rand_text)); } });
charAt는 index로 주어진 값에 해당하는 문자를 리턴한다고 합니다.
TextView에 표시할 setText에는 rand_text 변수를 써주면 됩니다.
일단 문자열에 "가나다" 만 적었으니 이 중 하나가 랜덤으로 출력되어야겠죠?
랜덤으로 잘 출력되는 것을 확인하였습니다.
반응형'개발 > Android' 카테고리의 다른 글
안드로이드 스튜디오 SDK 환경변수 설정하는 방법 (SDK 폴더 경로) (10) 2021.01.10 안드로이드 스튜디오 구글 애드몹 배너광고 넣기 (google adMob) (2) 2021.01.05 안드로이드 스튜디오 이미지(drawble)와 텍스트뷰(TextView) 매칭시키기 (5) 2021.01.04 안드로이드 스튜디오 버튼 클릭시 다른 Activity로 화면전환 (1) 2021.01.03 안드로이드 스튜디오 인트로 화면 생성, 원하는 로고 이미지 넣기 (11) 2021.01.02 댓글