package com.kh.arrayPractice1.sample;
import java.util.Random;
import java.util.Scanner;
public class ArraySample {
public void test1() {
/*각 방에 1~100사이의 임의의 난수를 기록함
* 10개의 정수들의 합계를 구하여 출력함*/
int[] iarr = new int[10];
for(int i = 0; i < iarr.length; i++) {
int random = new Random().nextInt(100) + 1;
iarr[i] = random;
System.out.println("iarr[" + i + "]의 값 : " + iarr[i]);
}
}
public void test1_1() {
Random r = new Random();
int[] ar = new int[10];
int sum = 0;
for(int i = 0; i <ar.length; i++) {
ar[i] = r.nextInt(100)+1;
sum += ar[i];
}
System.out.println("sum : " + sum);
}
public void test2() {
int[] iarr = new int[10];
int max = iarr[0], min = 100;
for(int i = 0; i < iarr.length; i++) {
int random = new Random().nextInt(100) + 1;
iarr[i] = random;
System.out.println("iarr[" + i + "]의 값 : " + iarr[i]);
}
for(int i = 0; i < iarr.length; i++) {
max = Math.max(max, iarr[i]);
min = Math.min(min, iarr[i]);
}
System.out.println("가장 큰 값 : " + max + "\n가장 작은 값 : " + min);
}
public void test2_1() {
int[] iarr = new int[10];
for(int i = 0; i < iarr.length; i++) {
iarr[i] = (int)(Math.random() * 100) + 1;
System.out.println("iarr[" + i + "]의 값 : " + iarr[i]);
}
int max = iarr[0];
int min = iarr[0];
for(int i = 0; i < iarr.length; i++) {
if(max < iarr[i]) {
max = iarr[i];
}
if(min > iarr[i]) {
min = iarr[i];
}
}
System.out.println("가장 큰 값 : " + max + "\n가장 작은 값 : " + min);
}
public void test3() {
byte[] barr = new byte[10];
for(int i = 0; i < barr.length; i++) {
int random = (int)(Math.random() * 256) - 128;
barr[i] = (byte)(random);
System.out.println("iarr[" + i + "]의 값 : " + barr[i]);
}
int j = 0, sum = 0;
while(j < barr.length) {
if(barr[j] % 2 == 0) sum += barr[j];
j++;
}
System.out.println("기록된 10개의 값 중 짝수들의 합계 : " + sum);
}
public void test3_1() {
Random r = new Random();
byte[] bar = new byte[10];
int sum = 0;
r.nextBytes(bar); //인자로 byte배열을 넣어주면 byte범위의 난수를 발생시켜 byte배열에 대입
for(int i = 0; i < bar.length; i++) {
System.out.println("iarr[" + i + "]의 값 : " + bar[i]);
if(bar[i] % 2 == 0) sum += bar[i];
}
System.out.println("기록된 10개의 값 중 짝수들의 합계 : " + sum);
}
public void test4() {
/* - ArraySample 클래스에 메소드 추가함
: 숫자로 된 문자열을 입력받아, 각 자리의 숫자들의 합을 구하여 출력
- 메소드명 : public void test4(){}
ex>
문자열 입력 : 12345 //String 클래스의 substring() 메소드 사용
합계 : 15*/
Scanner sc = new Scanner(System.in);
System.out.print("숫자로 된 문자열 입력 : ");
String snum = sc.nextLine();
String[] sarr = new String[10];
int num = 0;
String sh = ""; //한 번 변환해주고 배열에 대입해야함
int sum = 0;
for(int i = 0; i < snum.length(); i++) { //입력한 문자열을 한글자씩 string배열에 값 대입
sh = snum.substring(i, i + 1);
sarr[i] = sh;
num = Integer.parseInt(sarr[i]); //string을 int로 바꿔 합계 누적
sum += num;
}
System.out.println("각 자리의 숫자들의 합 : " + sum);
}
public void test4_1() {
Scanner sc = new Scanner(System.in);
int sum = 0;
System.out.print("숫자 입력 : ");
String value = sc.nextLine();
if(value != null && value.length() > 0) { //문자열을 입력했을때
for(int i = 0; i <value.length(); i++) {
/*String s = value.substring(i, i + 1); //시작 인덱스에서 끝 인덱스의 전까지 잘라내 추출
int num = Integer.parseInt(s);
//parsing : "3"을 숫자 3으로 바꿈
//기본자료형을 문자열로 변경 : 3 -> "3"
// => 3 + "";*/
sum += Integer.parseInt(value.substring(i, i + 1));
}
}else {
System.out.println("입력된 값이 없습니다.");
}
}
public void test5() {
/*문자열 입력 : 12345 //String 클래스의 charAt() 메소드 사용
합계 : 15*/
Scanner sc = new Scanner(System.in);
System.out.print("숫자로 된 문자열 입력 : ");
String snum = sc.nextLine();
int[] sarr = new int[10];
int sum = 0;
for(int i = 0; i < snum.length(); i++) {
sarr[i] = snum.charAt(i) -48; //0부터 1번째 문자 추출하여 대입
sum += sarr[i]; //int로 바꿔주어 합계 누적
}
System.out.println("각 자리의 숫자들의 합 : " + sum);
}
public void test5_1() {
Scanner sc = new Scanner(System.in);
int sum = 0;
System.out.print("숫자 입력 : ");
String value = sc.nextLine();
/*char ch = '1';
System.out.println((int)ch);*/
if(value != null && value.length() > 0) { //문자열을 입력했을때
for(int i = 0; i <value.length(); i++) {
sum += (int)value.charAt(i) - 48;
}
}else {
System.out.println("입력된 값이 없습니다.");
}
System.out.println("sum : " + sum);
}
public void test6() {
/*
2. 문자열에서 생년, 생월, 생일, 성별에 대한 값을 분리 추출함
String 클래스의 substring() 메소드 사용
3. java.util 패키지의 날짜 관련 클래스
(Date 또는 Calendar 또는 GregorianCalendar)를 사용해서
추출한 생년월일 값으로 날짜 데이터를 만듦
4. 생일의 요일이 무슨 요일이었는지 제공되는 메소드를 사용해서 확인출력
5. 성별값이 1이면 남자, 2이면 여자라고 출력함
6. 날짜 데이터로 바꾼 값에서 년도만, 오늘 날짜의 년도를 빼서 나이 계산 출력함
*/
String personID = "881225-1234567";
System.out.println(personID.substring(0, 2)); //생년
personID.substring(2, 4); //생월
personID.substring(4, 6); //생일
System.out.println(personID.substring(7, 8)); //성별
}
}