본문 바로가기

수업 복습하기/Java

Day 07 - 배열 삽입, 수정 및 삭제 (Array Insert, Update, Delete)

728x90
728x90

= 배열 삽입, 수정 및 삭제 (Array Update, Array Delete) 

 

=배열 삽입

<문제>(난이도  )

내가 먹고싶은 음식들을 계속 입력하다가 그만이라는 말을 입력하면, 내가 먹고싶은 음식들을 배열로 묶어서 나타나게 만들기.

제일 중요하다고 생각하는 부분 

문자열이 같다라는 걸 표현하고싶으면 ==를 사용하는 것이 아닌

equals를 사용한다는 부분

count인지 count-1인지 꼼꼼히 확인을 해야한다.

import java.util.Arrays;
import java.util.Scanner;

public class Arrayinsert {
public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);

	String[] arr = new String[100]; //크기가 100인 배열
	 int count = 0;  //음식의 개수
	
	 System.out.println("먹고 싶은 음식이 뭐에요?");
	 System.out.println("입력만 한 번 해보세요");
	 
	 while(true) {
		 System.out.print(">");
		 //문자열 받는거 next랑  nextline (공백에따라서)
		 String menu = scan.nextLine();//공백도 포함해서 받습니다.
		 
		 if(menu.equals("그만")) break; 
		 //문자열은 ==으로 비교하면 안되고,equals를 사용해서 비교해야한다.
		 
		 arr[count]= menu;
		 count++;
		 }
	// System.out.println(Arrays.toString(arr));
	
    System.out.print("먹고싶은 음식 : [");
	for(int i =0;i<count;i++) {
		System.out.print(arr[i]);
		if(i==count-1) break;	
		System.out.print(", ");
	}
	System.out.print("]");
}
}

 

= 배열 수정 (Array Update)

배열에서 원하는 위치에 원하는 값을 수정하기 위해서 사용하는 배열 수정!우선 콘솔에 내가 수정하고 싶은 배열의 값을 입력하고, 배열 안에 내가 원하는 배열값이 있는지 없는지 찾고, 있다면 변경하고없으면 없다고 나타내야하는 단계를 거쳐야 한다. (입력 -> 있는지 없는지 탐색 -> 변경) <문제>(난이도 )배열 내 이름 바꾸기!

<정답>

<해설>

flag를 사용하는 것은 if문을 실행했다는 증거이다.수정을 했는지, 아니면 수정을 하지 않았는지 보여주기 위해서 작성하는 if구문으로for구문의 밖에 위치해야된단 부분을 조심하자.

import java.util.Arrays;
import java.util.Scanner;

public class ArraysUpdate {
public static void main(String[] args) {
	Scanner scan =new Scanner(System.in);
	String[]arr= {"강타","문희준","토니안","장우혁","이재원"};
	
	System.out.print("수정할 별명을 입력하세요>");
	String name = scan.next();
	
	boolean flag = false;
	for(int i= 0;i<arr.length;i++) {
		if(name.equals(arr[i])) {//수정할 학생이 있는 경우
			System.out.print("변경할 이름을 작성하세요>");
			String s = scan.next();
			arr[i]=s;
			flag = true; //얘가 true가 된다는건 if문을 실행했다는 증거.
		//arr[i]=scan.next();
		}
	}
	if(flag) {
		System.out.println("이름이 정상 수정되었습니다!");
		System.out.println(Arrays.toString(arr));
		} else {System.out.println("찾는 이름은 없습니다!");}
}
}

= 배열 삭제 (Array Delete)

 

<문제 3> (난이도 )

문제 2를 활용해서~ 이름을 삭제하고 삭제한 뒤의 배열을 앞으로 당겨와서 채워주기!

실제로 배열을 삭제하는 방법은 없지만, 배열을 삭제한 것 처럼 보이게 하는 방법!

아래 예시는 배열에서 4를 없애고 앞으로 당기는 문제.

여기서 4는 배열에 위치한 4가 아니라 index의 4를 의미하기 때문에, 실제로 삭제 되는 값은 5이다.

실제로 출력값은

[1, 2, 3, 4, 6, 7, 8, 9, 10, 10]

 

<문제>

강타, 문희준, 이재원, 토니안, 장우혁에서 원하는 이름을 입력하면,

그 이름이 삭제되고 삭제된 이름 뒤의 값들이 앞으로 한칸씩 당겨지게 만들기.

 

<정답>

<해설>

728x90