danDevlog

Java - day9 본문

Java

Java - day9

단데기이 2022. 2. 28. 09:06
728x90
class NewFile {

   // 비교
   void index(String name) {
      int index = 200;
      for (int i = 0; i < cnt; i++) {
         if (name.equals(phoneList[i].getName())) {
            index = i;
         }
      }
      //return index;// 리턴이 없다면 함수명 옆의 타입에 void 명시
      
      // 찾았을때 바로 출력하면 되는데 왜 리턴 하는가?
      // 검색시에도 비교가 필요하고, 삭제시에도 비교가 필요
      // 그래서, 중복 기능으로 코드를 구현하기 보다
      // 1개의 메소드로 만들고 반복 호출하여 처리
   }
}

next() 와 nextLine()의 차이

next(), nextLine()는 Scanner 클래스의 메소드이다. 공통점은 둘다 문자열로 반환을 시켜준다는 점이고 차이점은 개행문자를 무시하냐 안하냐의 차이

next()는 개행문자를 무시하고 입력을 받음nextLine()은 한줄 단위로 입력을 받기 때문에 개행문자로 포함

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("숫자를 입력 하세요.");
		int num = sc.nextInt();//1
		sc.nextLine();//엔터
		System.out.println("문자를 입력하세요.");
		String s = sc.nextLine();
		System.out.println("입력된 숫자는 :" + num);
		System.out.println("입력된 문자는 :" + s);
		sc.close();
	}
}
// 배열 재정렬
public class ttt {
	String[] sArr = new String[5];
	int cnt = 0;
	public static void main(String[] args) {
		ttt m = new ttt();
		m.sArr[0] = new String("one");
		m.sArr[1] = new String("two");
		m.sArr[2] = new String("three");
		m.sArr[3] = new String("four");//삭제
		m.sArr[4] = new String("five");
		m.cnt = 5;
		m.sArr[3] = null;// 삭제.
		m.cnt--;//4
		m.arrSort(3);
		
		for(int i=0; i<m.sArr.length; i++) {
			System.out.println(m.sArr[i]);
		}
	}
	void arrSort(int index) {
		for (int i = 3; i < 4; i++) {
			sArr[3] = sArr[4];
		}
		sArr[4] = null;
		// one, two, three, four, five
		// one, two, three, null, five
		// one, two, three, five, five
		// one, two, three, five, null
	}
}
// 배열 복사
public class ttt {
	public static void main(String[] args) {
		int [] array1= {10,20,30,40,50};
		int [] array2= {1,2,3,4,5};
		System.arraycopy(array1, 0, array2, 1, 4);
		// 복사할 배열, 복사할 첫위치, 대상 배열, 붙여넣을 첫 위치, 복사할 개수
		for(int i=0;i<array2.length;i++) {
			System.out.print(array2[i]+" ");
		}
		// 1 10 20 30 40
	}
}
//선택 정렬 알고리즘
import java.util.Arrays;
//어느 클래스의 메소드를 사용할지 표시하는 것이 import
//ctrl+shift+o (알파벳 오) 임포트 처리.
//ctrl+shift+f (레이아웃 정렬) 가독성 높이기.
//ctrl+shift+s (모든 코드 저장)
public class ttt {
	public static void main(String[] args) {
		int[] array1 = { 10, 20, 30, 40, 50 };
		int[] array2 = { 1, 2, 3, 4, 5 };
		System.arraycopy(array1, 0, array2, 1, 4);
		//복사할 배열, 복사할 첫위치, 대상 배열, 붙여넣을 첫 위치, 복사할 개수
		for (int i = 0; i < array2.length; i++) {
			System.out.print(array2[i] + " ");
		}
		//1 10 20 30 40
		System.out.println();
		int[] arr = { 7, 5, 9, 0, 3, 1, 6, 2, 4, 8 };
		// 위 arr 배열을 오름차순으로 정렬하여 표시하세요.
		
		for (int i = 0; i < arr.length; i++) {
		for (int j = i + 1; j < arr.length; j++) {
		if (arr[i] > arr[j]) {
		// 자리 바꾸기.
		int tmp = arr[i];
		arr[i] = arr[j];
		arr[j] = tmp;
		}
		}
		System.out.println(Arrays.toString(arr));
		}
//		int[] arr = { 7, 5, 9, 0, 3, 1, 6, 2, 4, 8 };
//		System.out.println(Arrays.toString(arr));
//		Arrays.sort(arr);
//		System.out.println("메소드 이용.");
//		System.out.println(Arrays.toString(arr));
	}
}

객체의 깊은 복사 : 동일한 값의 객체를 2개 만들어 내는 것

객체의 얕은 복사 : 가르키는 변수는 2개지만, 1개의 객체를 가르킬 때

//2차원 행열 만들어 보기
public class ttt {
	public static void main(String[] args) {
		//2차원 배열의 사용예,
		int[][] arr = { { 1, 2, 3 }, { 4, 5, 6 },{7,8,9},{10,11,12}};
		//3행 2열의 2차원 배열.
		//2차원 배열일때는 배열명.length는 행의 갯수만 리턴.
		//열의 갯수를 리턴 받으려면 배열명[index].length를 이용.
		for (int i = 0; i < arr.length; i++) {// 행
			for (int j = 0; j < arr[i].length; j++) {// 열
				System.out.print(arr[i][j] + " ");
			}
			System.out.println();
		}
	}
}

 

'Java' 카테고리의 다른 글

Java - day11(전화번호부 5단계, 4단계 다른 방식 풀이)  (0) 2022.03.02
Java - day10(배열, 상속, 전화번호 4단계)  (0) 2022.02.28
Java - day8(전화번호부 3단계)  (1) 2022.02.24
Java - day7  (0) 2022.02.23
Java - day6  (0) 2022.02.22
Comments