수수한 코딩세상

랜덤 닉네임 생성기 본문

수수한 코딩세상/Java

랜덤 닉네임 생성기

수수한 코딩열공생 2024. 6. 19. 17:11

문제

사용자는 최소 27가지 이상의 닉네임 중 하나를 랜덤으로 출력할 수 있습니다. (아래의 키워드를 사용해주세요!)

  • 기철초풍, 멋있는, 재미있는
  • 도전적인, 노란색의, 바보같은
  • 돌고래, 개발자, 오랑우탄

 

코드 생각

  • 각각의 닉네임을 랜덤으로 추출해야 하기 때문에 Random 라이브러리를 사용해야겠다고 생각했습니다.
  • 자료 구조형을 리스트로 하여서 추출해 보기로 했습니다.
  • 최종 출력될 자료형은 문자열이 되도록 해야겠다고 생각했습니다.
  • 랜덤 닉네임을 생성하는 것은 하나의 기능이기 때문에 실행될 Main Class와 분리해 개별 Class에 작성해야겠다고 생각했습니다.

 

개발 코드

RandomNicknameGenerator Class

import java.util.Random;
import java.util.ArrayList;
import java.util.Arrays;

public class RandomNicknameGenerator {

    //랜덤으로 추출할 키워드를 담은 List 생성
    ArrayList<String> firstList = new ArrayList<>(Arrays.asList("기절초풍","멋있는","재미있는"));
    ArrayList<String> secondList = new ArrayList<>(Arrays.asList("도전적인","노란색의","바보같은"));
    ArrayList<String> thirdList = new ArrayList<>(Arrays.asList("돌고래","개발자","오랑우탄"));

    public String createNickname(){

        //랜덤 이름을 담을 리스트 생성
        ArrayList<String> nicknameList = new ArrayList<>();

        //랜덤 변수 생성
        Random random = new Random();
        int randomIndex;

        //첫번째 리스트에서 이름 랜덤 추출
        randomIndex = random.nextInt(firstList.size());
        nicknameList.add(firstList.get(randomIndex));
        //두번째 리스트에서 이름 랜덤 추출
        randomIndex = random.nextInt(secondList.size());
        nicknameList.add(secondList.get(randomIndex));
        //세번째 리스트에서 이름 랜덤 추출
        randomIndex = random.nextInt(thirdList.size());
        nicknameList.add(thirdList.get(randomIndex));

        //생성된 랜덤 이름 리스트를 문자열로 변환하여 반환할 변수 생성
        String nickName = String.join(" ",nicknameList);

        return nickName;
    }

}

 

Main Class

public class Main {
    public static void main(String[] args) {
        RandomNicknameGenerator randomNicknameGenerator=new RandomNicknameGenerator();
        String nickName = randomNicknameGenerator.createNickname();

        System.out.println(nickName);
    }
}

 

코드 개발 전에 생각한 데로 기능을 실행할 클래스를 `RandomNicknameGenerator`로 따로 코딩하여 `Main` 클래스에서 호출하는 방식으로 구성하였습니다. 

`RandomNicknameGenerator` 클래스에서 랜덤 변수를 생성하여 랜덤 변수로 각 리스트 안에서 닉네임을 추출하여 리스트 자료형에 넣어주었습니다. 추출한 닉네임을 가지고 있는 리스트를 문자열로 바꿔주어 문자열 변수에 넣어주어 반환하는 작업을 거쳐 출력되는 로직으로 구성하였습니다.

 

실행 화면

코드 실행 화면

 

 

기억해 둘 코드

Array.asList로 String자료형을 여러 개 전달하여 리스트 생성하기
import java.util.ArrayList;
import java.util.Arrays;

ArrayList<String> firstList = new ArrayList<>(Arrays.asList("기절초풍","멋있는","재미있는"));

 

String.join을 사용하여 리스트 자료형을 문자열 자료형으로 바꿔주기
String nickName = String.join(" ",nicknameList);

 

랜덤 변수로 리스트에서 랜덤으로 문자열 추출해서 삽입하기
import java.util.Random;
import java.util.ArrayList;
 
Random random = new Random();
int randomIndex;

randomIndex = random.nextInt(firstList.size());
nicknameList.add(firstList.get(randomIndex));

'수수한 코딩세상 > Java' 카테고리의 다른 글

Java 란?  (0) 2024.06.18
[Programmers] 두 수의 차  (0) 2024.06.17
[Java] IntelliJ 설치방법  (0) 2024.04.24