정수 5개를 입력 받아 배열을 초기화 하고
검색할 정수를 하나 입력 받아 배열에서 같은 수가 있는 인덱스를 찾아 출력.
배열에 같은 수가 없을 경우 “일치하는 값이 존재하지 않습니다“ 출력
입력 0 : 5
입력 1 : 8
입력 2 : 9
입력 3 : 10
입력 4 : 4
검색할 값 : 8
인덱스 : 1
입력 0 : 5
입력 1 : 8
입력 2 : 9
입력 3 : 10
입력 4 : 4
검색할 값 : 1
일치하는 값이 존재하지 않습니다.
public void practice4() {
Scanner sc = new Scanner(System.in);
int[] arr = new int[5];
for (int i = 0; i < arr.length; i++) {
System.out.print("입력 " + i + " : ");
arr[i] = sc.nextInt();
}
System.out.print("검색할 값 : ");
int search = sc.nextInt();
boolean flag = true;
for (int i = 0; i < arr.length; i++) {
if (search == arr[i]) {
System.out.println("인덱스 : " + i);
flag = false;
break;
}
}
if (flag)
System.out.println("일치하는 값이 존재하지 않습니다.");
sc.close();
}
문자열을 입력 받아 문자 하나하나를 배열에 넣고 검색할 문자가 문자열에 몇 개 들어가 있는지
개수와 몇 번째 인덱스에 위치하는지 인덱스를 출력하세요.
문자열 : application
문자 : i
application에 i가 존재하는 위치(인덱스) : 4 8
i 개수 : 2
public void practice5() {
Scanner sc = new Scanner(System.in);
System.out.print("문자열 : ");
String str = sc.nextLine();
System.out.print("문자 : ");
char ch = sc.next().charAt(0);
char[] arr = new char[str.length()];
String index = "";
int count = 0;
for (int i = 0; i <arr.length; i++) {
arr[i] = str.charAt(i);
if (ch == arr[i]) {
index += i + " ";
count++;
}
}
System.out.println(str + "에 " + ch + "가 존재하는 위치(인덱스) : " + index);
System.out.println(ch + " 개수 : " + count);
sc.close();
}
사용자가 배열의 길이를 직접 입력하여 그 값만큼 정수형 배열을 선언 및 할당하고
배열의 크기만큼 사용자가 직접 값을 입력하여 각각의 인덱스에 값을 초기화 하세요.
그리고 배열 전체 값을 나열하고 각 인덱스에 저장된 값들의 합을 출력하세요.
정수 : 5
배열 0번째 인덱스에 넣을 값 : 4
배열 1번째 인덱스에 넣을 값 : -4
배열 2번째 인덱스에 넣을 값 : 3
배열 3번째 인덱스에 넣을 값 : -3
배열 4번째 인덱스에 넣을 값 : 2
4 -4 3 -3 2
총 합 : 2
public void practice6() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 : ");
int num = sc.nextInt();
int[] arr = new int[num];
int sum = 0;
for (int i = 0; i < arr.length; i++) {
System.out.print("배열 " + i + "번째 인덱스에 넣을 값 : ");
arr[i] = sc.nextInt();
sum += arr[i];
}
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
System.out.println("\n총 합 : " + sum);
sc.close();
}
주민등록번호 번호를 입력 받아 char 배열에 저장한 후 출력하세요.
단, char 배열 저장 시 성별을 나타내는 숫자 이후부터 * 로 저장하세요.
주민등록번호(-포함) : 123456-1234567
123456-1 * * * * * *
public void practice7() {
Scanner sc = new Scanner(System.in);
System.out.print("주민등록번호(-포함) : ");
String str = sc.nextLine();
char[] arr = new char[str.length()];
for (int i = 0; i < arr.length; i++) {
if (i >= 8)
arr[i] = '*';
else
arr[i] = str.charAt(i);
System.out.print(arr[i]);
}
sc.close();
}
3이상인 홀수를 입력 받아 배열의 중간까지는 1부터 1씩 증가하여 오름차순으로 값을 넣고,
중간 이후부터 끝까지는 1씩 감소하여 내림차순으로 값을 넣어 출력하세요.
단, 입력한 정수가 홀수가 아니거나 3 미만일 경우 “다시 입력하세요”를 출력하고
다시 정수를 받도록 하세요.
정수 : 4
다시 입력하세요.
정수 : -6
다시 입력하세요.
정수 : 5
1, 2, 3, 2, 1
public void practice8() {
Scanner sc = new Scanner(System.in);
int input;
int[] arr;
int num = 1;
while (true) {
System.out.print("정수 : ");
input = sc.nextInt();
if (input < 3 || input % 2 == 0)
System.out.println("다시 입력하세요.");
else {
arr = new int[input];
for (int i = 0; i < arr.length; i++) {
if (i < arr.length / 2)
arr[i] = num++;
else
arr[i] = num--;
if (i < arr.length - 1)
System.out.print(arr[i] + ", ");
else
System.out.println(arr[i]);
}
break;
}
}
sc.close();
}
10개의 값을 저장할 수 있는 정수형 배열을 선언 및 할당하고,
1~10 사이의 난수를 발생시켜 배열에 초기화한 후 출력하세요.
발생한 난수 : 9 7 6 2 5 10 7 2 9 6
public void practice9() {
int[] arr = new int[10];
System.out.print("발생한 난수 : ");
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 10 + 1);
System.out.print(arr[i] + " ");
}
}
10개의 값을 저장할 수 있는 정수형 배열을 선언 및 할당하고,
1~10 사이의 난수를 발생시켜 배열에 초기화 후
배열 전체 값과 그 값 중에서 최대값과 최소값을 출력하세요.
발생한 난수 : 5 3 2 7 4 8 6 10 9 10
최대값 : 10
최소값 : 2
public void practice10() {
int[] arr = new int[10];
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
System.out.print("발생한 난수 : ");
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 10 + 1);
if (arr[i] > max)
max = arr[i];
if (arr[i] < min)
min = arr[i];
System.out.print(arr[i] + " ");
}
System.out.print("\n최대값 : " + max);
System.out.print("\n최소값 : " + min);
}
10개의 값을 저장할 수 있는 정수형 배열을 선언 및 할당하고
1~10 사이의 난수를 발생시켜 중복된 값이 없게 배열에 초기화한 후 출력하세요.
4 1 3 6 9 5 8 10 7 2
public void practice11() {
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 10 + 1);
for (int j = 0; j < i; j++) {
if (arr[j] == arr[i]) {
i--;
break;
}
}
}
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
}
로또 번호 자동 생성기 프로그램을 만들기.
(중복 값 없이 오름차순으로 정렬하여 출력하세요.)
3 4 15 17 28 40
public void practice12() {
int[] arr = new int[6];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 45 + 1);
for (int j = 0; j < i; j++) {
if (arr[j] == arr[i]) {
i--;
break;
}
}
}
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
}
문자열을 입력 받아 문자열에 어떤 문자가 들어갔는지 배열에 저장하고
문자의 개수와 함께 출력하세요.
문자열 : application
문자열에 있는 문자 : a, p, l, i, c, t, o, n
문자 개수 : 8
public void practice13() {
Scanner sc = new Scanner(System.in);
System.out.print("문자열 : ");
String str = sc.nextLine();
char[] arr = new char[str.length()];
int count = 0;
System.out.print("문자열에 있는 문자 : ");
for (int i = 0; i < arr.length; i++) {
arr[i] = str.charAt(i);
boolean flag = true;
for (int j = 0; j < i; j++) {
if (arr[j] == arr[i])
flag = false;
}
if (flag) {
if (i == 0)
System.out.print(arr[i]);
else
System.out.print(", " + arr[i]);
count++;
}
}
System.out.println("\n문자 개수 : " + count);
sc.close();
}
사용자가 입력한 배열의 길이만큼의 문자열 배열을 선언 및 할당하고
배열의 인덱스에 넣을 값 역시 사용자가 입력하여 초기화 하세요.
단, 사용자에게 배열에 값을 더 넣을지 물어보고 몇 개를 더 입력할 건지,
늘린 곳에 어떤 데이터를 넣을 것인지 받으세요.
사용자가 더 이상 입력하지 않겠다고 하면 배열 전체 값을 출력하세요.
배열의 크기를 입력하세요 : 3
1번째 문자열 : 자바의 정석
2번째 문자열 : 알고리즘
3번째 문자열 : C프로그래밍
더 값을 입력하시겠습니까?(Y/N) : y
더 입력하고 싶은 개수 : 2
4번째 문자열 : 인간관계
5번째 문자열 : 자기계발
더 값을 입력하시겠습니까?(Y/N) : y
더 입력하고 싶은 개수 : 1
6번째 문자열 : 영단어600
더 값을 입력하시겠습니까?(Y/N) : n
[자바의 정석, 알고리즘, C프로그래밍, 인간관계, 자기계발, 영단어600]
public void practice14() {
Scanner sc = new Scanner(System.in);
System.out.print("배열의 크기를 입력하세요 : ");
String[] arr = new String[sc.nextInt()];
sc.nextLine();
int index = 0;
while (true) {
for (int i = index; i < arr.length; i++) {
System.out.print(i + 1 + "번째 문자열 : ");
arr[i] = sc.nextLine();
}
index = arr.length;
System.out.print("더 값을 입력하시겠습니까?(Y/N) : ");
char plus = sc.next().charAt(0);
if (plus == 'Y' || plus == 'y') {
System.out.print("더 입력하고 싶은 개수 : ");
String[] arr2 = new String[arr.length + sc.nextInt()];
sc.nextLine();
System.arraycopy(arr, 0, arr2, 0, arr.length);
arr = arr2;
} else if (plus == 'N' || plus == 'n') {
System.out.println(Arrays.toString(arr));
break;
} else {
System.out.println("잘못 입력하셨습니다.");
continue;
}
}
sc.close();
}
0.0 이상 1.0 미만의 double 형 난수 하나를 발생시키는 메서드