HIGH JAVA ArrayList 연습문제

어뮤즈온·2021년 1월 11일
0

고급자바

목록 보기
3/7

5명의 사람 이름을 입력 받아서 ArrayList에 저장한 후에 이들 중 '김'씨 성을 가진 사람을 모두 출력하시오.

public class ArrayListTest02 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		ArrayList<String> names = new ArrayList<>();
		
		for(int i = 0; i < 5; i++){
			System.out.println("이름을 입력하세요.");
			String name = sc.nextLine();
			names.add(name);
		}
		
		ArrayList<String> kim = new ArrayList<>();
		for(int i = 0; i < 5; i++){
			String firstName = names.get(i).substring(0,1);
			if(firstName.equals("김")){
				kim.add(names.get(i));
			}
		}
		
		System.out.println(kim.toString());
		
		//샘풀이
		Scanner scan = new Scanner(System.in);
		
		ArrayList<String> nameList = new ArrayList<>();
		
		for(int i = 1; i <= 5; i++){
			System.out.println(i + "번째 사람의 이름을 입력하세요.");
			String name = scan.nextLine();
			nameList.add(name);
		}
		
		System.out.println();
		System.out.println("김씨 성을 가진 사람들...");
		
		for(int i = 0; i < nameList.size(); i++){
//			if(nameList.get(i).charAt(0) == '김'){
         		 //charAt은 반환값이 character이기 때문에 ' '
//				System.out.println(nameList.get(i));
//			}
			
//			if(nameList.get(i).substring(0,1).equals("김")){
//				System.out.println(nameList.get(i));
//			}
			
//			if(nameList.get(i).indexOf("김") == 0){
//				System.out.println(nameList.get(i));
//			}
			
			if(nameList.get(i).startsWith("김")){
			  //"김"으로 시작하면 true
				System.out.println(nameList.get(i));
			}
		}
	}

}

5명의 별명을 입력 받아 ArrayList에 저장하고 이들 중 별명의 길이가 제일 긴 별명을 출력하시오. (단, 각 별명의 길이는 모두 다르게 입력한다.)

public class ArrayListTest03 {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		ArrayList<String> names = new ArrayList<>();
		
		for(int i = 1; i <= 5; i++){
			System.out.println(i + "번째 사람의 별명을 입력하시오.");
			String name = sc.nextLine();
			int lang = name.length();
			if(i > 1){
				for(int j = 0; j < i-1; j++){
					if(names.get(j).length() == lang){
						System.out.println("별명의 길이는 같을 수 없습니다. 다시 입력하세요.");
						name = sc.nextLine();
					}
				}
			}
			
			names.add(name);
		}
			
		int max = 0;
		for(int i = 0; i < names.size(); i++){
			if(names.get(max).length() < names.get(i).length()){
				max = i;
			}
			
		}
		
		System.out.println("제일 긴 별명...");
		System.out.println(names.get(max));
//		
		//샘풀이
		ArrayList<String> aliasList = new ArrayList<>();
		
		System.out.println("서로 다른 길이의 별명을 5번 입력하시오.");
		for(int i = 1; i <= 5; i++){
			System.out.println(i + "번째 별명 : ");
			String alias = sc.next();
			aliasList.add(alias);
		}
		
		//제일 긴 별명이 저장될 변수를 선언하고 이 변수에는 List의 첫번째 데이터로 초기화 한다.
//		String maxAlias = aliasList.get(0);
		//제일 긴 별명이 저장된 index값이 저장될 변수를 선언하고 0으로 초기화 한다.
		int maxIndex = 0;
		
		for(int i = 1; i < aliasList.size(); i++){
//			if(maxAlias.length() < aliasList.get(i).length()){
//				maxAlias = aliasList.get(i);
//			}

			if(aliasList.get(maxIndex).length() < aliasList.get(i).length()){
				maxIndex = i;
			}
		}
		
//		System.out.println("제일 긴 별명 : " + maxAlias);
		System.out.println("제일 긴 별명 : " + aliasList.get(maxIndex));
	}
	
}

위 문제에서 별명의 길이가 같은 것을 입력할 수 있는 경우를 처리하시오.

public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	ArrayList<String> names2 = new ArrayList<>();
	for(int i = 1; i <= 5; i++){
		System.out.println(i + "번째 사람의 별명을 입력하시오.");
		String name = sc.nextLine();
		
		names2.add(name);
	}
		
	int max2 = 0;
	for(int i = 0; i < names2.size(); i++){
		if(names2.get(max2).length() < names2.get(i).length()){
			max2 = i;
		}
	}
		
	for(int i = 0; i < names2.size(); i++){
		if(names2.get(max2).length() == names2.get(i).length()){
			System.out.println(names2.get(i));
		}
	}
		
	//샘풀이
	ArrayList<String> aliasList = new ArrayList<>();
	
	System.out.println("별명을 5번 입력하시오.");
	for(int i = 1; i <= 5; i++){
		System.out.println(i + "번째 별명 : ");
		String alias = sc.next();
		aliasList.add(alias);
	}
		
	//제일 긴 별명의 길이가 저장될 변수를 선언하고 이 변수는 List의 첫번째 데이터의 길이로 초기화한다.
	int maxLength = aliasList.get(0).length();
		
	for(int i = 1; i < aliasList.size(); i++){
		if(maxLength < aliasList.get(i).length()){
			maxLength = aliasList.get(i).length();
		}
	}
		
	System.out.println("제일 긴 별명들...");
	for(int i = 0; i < aliasList.size(); i++){
		if(aliasList.get(i).length() == maxLength){
			System.out.println(aliasList.get(i));
		}
	}
}
profile
Hello, world!

0개의 댓글