특정 인덱스 삭제하기
- 배열 내 요소를 삭제하는 개념은 존재하지 않는다.
- 다만, 특정 인덱스를 삭제하는 방법은 동일한 배열을 복사한 뒤 삭제한 것 처럼 만드는 것이다.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] a = {1,2,3,4,5,6,7,8,9, 10};
int index= 5;
int[] b = new int[a.length-1];
for(int i=index; i<a.length-1; i++) {
a[i] = a[i+1];
}
for(int i =0; i<b.length; i++) {
b[i] = a[i];
}
System.out.println("문자열 이동 " + Arrays.toString(a));
System.out.println("결과 " + Arrays.toString(b));
}
}
- 배열 a 의 값에 index 5의 위치를 가진 요소를 삭제하는 문제이다.
- index 5번부터 마지막 요소를 왼쪽으로 한 칸씩 밀어주기 위해 반복문을 사용하고,
- 이전 인덱스에 다음인덱스를 저장해준다.
- 그리고 복사할 배열 b 를 배열 a 크기보다 작게 만들어준 뒤
- 배열 b에 배열 a를 저정해주면 삭제한 것 처럼 보이게 된다.
배열 특정 인덱스 수정하기
- 배열의 인덱스는 삭제는 불가하지만, 수정은 가능하다.
- 간단히 사용하면 해당 인덱스에 다른 값을 저장해주면 되지만,
- 반복문을 이용하여 특정인덱스의 값을 찾고 새로운 값으로 변경해주는 문제이다.
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
boolean bool = true;
String[] a = {"홍길동", "이순신", "피카츄", "라이츄", "꼬북이"};
Scanner sc = new Scanner(System.in);
System.out.print("찾을 단어를 입력하세요 : ");
String name = sc.next();
for(int i=0; i<a.length; i++) {
if(a[i].equals(name)) {
System.out.println(a[i] + " 님을 수정합니다.");
System.out.print("수정할 단어를 입력하세요 : ");
a[i] = sc.next();
bool = true;
break;
}
}
if(bool) {
System.out.println("수정이 완료되었습니다.");
}else {
System.out.println("찾는 값이 없습니다.");
}
System.out.println(Arrays.toString(a));
}
}
- 5개의 문자열을 가진 배열 a
- name은 단어를 찾기위해 입력해주는 변수이다.
- 이때 배열 내 동일 문자열을 찾기위해, equals 함수를 이용한다.
- 조건문 내에 name에 입력한 문자가 배열 a 내에 있다면 해당 배열에 새로 입력을 하여 추가해준다.
- 이때, 입력한 값이 없을 경우를 확인은 bool 함수를 이용하여 확인을 한다.
배열을 생성하고, 특정 문자를 입력하면 프로그램이 종료되는 문제
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] a = new String[100];
int index = 0; //위치 값
String b = "그만";
System.out.println("먹고 싶은 음식을 선택하세요");
System.out.println("입력을 중지하려면 [그만]을 입력하세요.");
for(int i=0; i<a.length; i++) {
System.out.print(" > ");
a[i] = sc.next();
if(a[i].equals(b)) {
System.out.println("입력 종료");
System.out.println("-----------입력받은메뉴-----------");
break;
}
index ++;
}
for(int i=0; i<index; i++) {
System.out.print(a[i] + " ");
}
}
}
- 100의 크기를 가진 배열에 값을 입력하여 추가하고, "그만"이란 단어가 입력될 시 프로그램을 종료하는 코드이다.
- 먼저 반복문을 사용하여 배열의 값을 계속하여 입력한 뒤
- 조건문을 사용해 "그만" 이라는 단어가 입력되면 반복을 중단하게 한다.
- 그리고 index 란 변수를 이용해 카운트를 해주게 되면 몇 번 인덱스까지 입력이 됐는지 알 수 있다.
- 출력 시, index를 최대값으로 지정해 배열에 저장된 그만이란 단어를 제외한
- 이전에 입력한 문자열들이 출력되도록 설정해준다.
- Arrays.toString 함수를 출력시 사용하지 않은 이유는 배열의 모든 인덱스를 불러와 출력을 하기때문에
- 100가지를 모두 입력하지 않으면 입력한 값을 제외한 모든 값들이 Null 로 출력이 되기때문에 사용하지 않는다.
728x90
'Programming > Java' 카테고리의 다른 글
[JAVA] 매서드 (0) | 2023.11.06 |
---|---|
[JAVA] 2차원 배열 (0) | 2023.11.03 |
[JAVA] 정렬과 복사 (0) | 2023.11.02 |
[JAVA] 배열 연습 (0) | 2023.11.01 |
[JAVA] 탈출문 (1) | 2023.11.01 |