728x90
반응형

 

 

 

Scanner

내가입력한 줄이 끝났음을 명시하는 문자 : [ ](한 칸 공백)

만약 line이 숨어져 있지 않은 메소드를 이어서 쓰는 경우는 다음을 입력하기 위해서는 엔터를 쳐주어야 한다.

값을 입력시 절대 공백을 넣을 수 없다. 연결된 단어로만 가능하다.
한 칸 입력시 공백입력하면 다음 칸으로 넘어감 ex)50(o) 50 3(x)
Scanner객체명.nextInt();
-공백이 없는 정수 값을 입력해주세요
sc.next(); 하늘 다람쥐 
sc.nextIn(); 
=> error발생
Scanner객체명.nextDouble();
-공백이 없는 실수 값을 입력해주세요.
Scanner객체명.next();
-공백이 없는 문자열 값을 입력해주세요.
ex)하늘(o), 하늘 다람쥐(x)
내가 입력한 줄이 끝났음을 명시하는 문자 :   [Enter]  Scanner객체명.nextLine();
-공백이 있는 한 줄 입력값을 받으세요.
sc.nextLine()  
   

StringTokenizer

   
문자열을 토큰 단위로 분해해 줌.
문자열, 구분자, 구분자포함, 미포함(디폴트-false)
hasMoreTokens
Token값이 있는지 확인
 
  nextToken
다음 Token값을 가져오삼
가져올 값의 수도 확인해야함
 

 

package javautilex;

import java.util.Scanner;

class Main{
	private String nm;
	private int age;
	private String gender;
	
	public String getNm() {
		return nm;
	}
	public void setNm(String nm) {
		this.nm = nm;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	
}


public class Ex01 {

	public static void main(String[] args) {
		System.out.println("정보를 입력해주세요.");
		Scanner sc = new Scanner(System.in);
		Main m = new Main();
		System.out.print("이름은: ");
		m.setNm(sc.nextLine());
		//
		System.out.print("나이는: ");
		m.setAge(sc.nextInt());
		
		System.out.print("성별은: ");
		m.setGender(sc.next());
		
		System.out.println("\n\n입력하신 정보는 아래와 같습니다.");
		System.out.println("이름 :" + m.getNm());
		System.out.println("나이 :" + m.getAge());
		System.out.println("성별 :" + m.getGender());
		
	}

}
국적	,	대한민국	,	성명	,	홍길동	,	성별	,	남	,	주소	,	서울시	

국적	대한민국
성명	홍길동
성별	남
주소	서울시

 

Arrays

   
원본 훼손 일어남 Arrays.fill(배열객체, 시작Index번호, 종료인덱스번호(-1), 채울값)  
  Arrays.sort(배열객체) = 오름차순으로 나열  
  Arrays.equals(배열객체1,배열객체2) - 배열객체 비교  
  System.arraycopy( 배열1, 배열1의 복사시작번호, 배열2, 배열2의 복사시작번호, 복사길이)

//얕은 복사 : 동일 주소값에 있는 일부 값이 변경되면 같이 변경됨
//깊은 복사 주소값이 아닌 값만 복사
System.arraycopy(b, 1, c, 0, 5);
arrayPrint("c : ", c);

c : 1 2 3 4 5 

binarySearch

   
2진수로 탐색    
<조건> 
1. 오름차순 정렬이 되어야 함
2. 데이터를 n/2으로 나누어 비교
  //a = {0 1 2 5 6 7 8 9 33 33};
System.out.println("33은 배열의 " + Arrays.binarySearch(a,33) + "번 요소");

33은 배열의 8번 요소
배열에 없는 값을 탐색하는 경우 해당 값을 정렬시킨 후 상대적으로 값 출력(-1부터 셈)    
package javautilex;

import java.util.Arrays;

public class UtilEx01 {
	public static void main(String[] args) {
		int[] a = {0, 1, 2, 3, 4, 5, 6 ,7 ,8 ,9};
		arrayPrint("초기 배열 : ", a); //해당 멤버 메소드
		System.out.println();
		//얕은 복사 : 동일 주소값에 있는 일부 값이 변경되면 같이 변경됨 
		//Arrays 원본 훼손 일어남
		
		//Arrays.fill(배열객체, 시작인덱스번호, 종료인덱스번호(-1), 채울값)
		Arrays.fill(a, 3, 5, 33); // 배열의 3 ~ 4번 요소를 33으로 채움
		arrayPrint("fill() 수행 후 : ", a);
		System.out.println();
		
		//Arrays.sort(배열객체) = 오름차순으로 나열
		Arrays.sort(a); 
		arrayPrint("sort() 수행 후 : ", a);
		System.out.println();
		
		//a = {0 1 2 5 6 7 8 9 33 33};
		System.out.println("33은 배열의 " + Arrays.binarySearch(a,33) + "번 요소");
		
		//binarySearch(배열객체, 찾을값) 2진수로 탐색 
		//<조건> 1. 오름차순 정렬이 되어야 함
		//2. 데이터를 n/2으로 나누어 비교
		System.out.println("-3은 배열의 " + Arrays.binarySearch(a,-3) + "번 요소");
		//배열에 없는 값을 탐색하는 경우 해당 값을 정렬시킨 후 상대적으로 값 출력(-1부터 셈)
		System.out.println("53은 배열의 " + Arrays.binarySearch(a,53) + "번 요소");
		System.out.println("4는 배열의 " + Arrays.binarySearch(a,4) + "번 요소");
		System.out.println();
		
//		for(int i=0; i<a.length ; i++) Arrays.fill(a, i, i+1, i); //(a, 0~0, 0)
//		Arrays.sort(a); 
//		arrayPrint("sort() 수행 후 : ", a);
//		System.out.println("배열a와 배열b가 같은가 : " + Arrays.equals(a,b)); //true
//		System.out.println();

		int[] b = {0, 1, 2, 3, 4, 5, 6 ,7 ,8 ,9};
		//Arrays.equals(배열객체1,배열객체2) - 배열객체 비교
		System.out.println("배열a와 배열b가 같은가 : " + Arrays.equals(a,b));
		System.out.println();
		
		int[] c = new int[5];
		//System.arraycopy( 배열1, 배열1의 복사시작번호, 배열2, 배열2의 복사시작번호, 복사길이)
		//arraycopy 깊은 복사 주소값이 아닌 값만 복사
		System.arraycopy(b, 1, c, 0, 5);
		arrayPrint("c : ", c);
		System.out.println();
		
		b[3] = 15;
		arrayPrint("b : ", b);
		arrayPrint("c : ", c);
		System.out.println();
	}
	
	static void arrayPrint(String s, int[] a) { //얕은 복사
		System.out.print(s);
		for (int i: a) {
			System.out.print(i + " ");
		}
		System.out.println();
	}
	//Method Overload
//	static void arrayPrint(String s, Book[] a) { 
//		System.out.println(s);
//		for (Book i: a) {
//			i.showBookInfo();
//		}
//		System.out.println();
//	}

}
초기 배열 : 0 1 2 3 4 5 6 7 8 9 

fill() 수행 후 : 0 1 2 33 33 5 6 7 8 9 

sort() 수행 후 : 0 1 2 5 6 7 8 9 33 33 

33은 배열의 8번 요소
-3은 배열의 -1번 요소
53은 배열의 -11번 요소
4는 배열의 -4번 요소

배열a와 배열b가 같은가 : false

c : 1 2 3 4 5 

b : 0 1 2 15 4 5 6 7 8 9 
c : 1 2 3 4 5
Book.java
package javautilex;

public class Book implements Cloneable {
	private String bookName;
	private String author;
	
	public Book() {}
	public Book(String bookName, String author) {
		this.bookName = bookName;
		this.author = author;
	}
	
	public String getBookName() {
		return bookName;
	}
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	
	public void showBookInfo() {
		System.out.println(bookName + ", " + author);
	}
	
	public Object clone() {
		Object o = null;
		try {
			o = super.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
		}
		return o;
	}
	
}​
package javautilex;

public class UtilEx01_02 {

	public static void main(String[] args) {

		Book[] book1 = new Book[3];
		Book[] book2 = new Book[3];
		book1[0] = new Book("동백꽃필무렵", "김유정");
		book1[1] = new Book("태백산맥", "조정래");
		book1[2] = new Book("수난이대", "하근찬");
		
		System.arraycopy(book1,  1,  book2,  0, 2);
		
		book2[2] = new Book("진주목걸이", "모파상");
		arrayPrint("(1) book1 : ", book1);
		arrayPrint("(1) book2 : ", book2);
		System.out.println();
		
		book1[1].setBookName("운수좋은날");
		book1[1].setAuthor("현진건");
		arrayPrint("(2) book1 : ", book1);
		arrayPrint("(2) book2 : ", book2);
		System.out.println();
		
		book2[2] = (Book) book1[1].clone();
		//clone 새로운 공간을 복제
		//다운캐스팅 
		arrayPrint("(3) book1 : ", book1);
		arrayPrint("(3) book2 : ", book2);
		System.out.println();
		
		book1[1].setBookName("그많던싱아는누가다먹었을까");
		book1[1].setAuthor("박완서");
		arrayPrint("(4) book1 : ", book1);
		arrayPrint("(4) book2 : ", book2);
		System.out.println();
		
		book2[0] = (Book) book2[2].clone();
		arrayPrint("(5) book1 : ", book1);
		arrayPrint("(5) book2 : ", book2);
		System.out.println();
	}

	static void arrayPrint(String s, Book[] a) {
		System.out.println(s);
		for(Book i : a) {
			i.showBookInfo();
		}
		System.out.println();
	}

}​
(1) book1 : 
동백꽃필무렵, 김유정
태백산맥, 조정래
수난이대, 하근찬

(1) book2 : 
태백산맥, 조정래
수난이대, 하근찬
진주목걸이, 모파상


(2) book1 : 
동백꽃필무렵, 김유정
운수좋은날, 현진건
수난이대, 하근찬

(2) book2 : 
운수좋은날, 현진건
수난이대, 하근찬
진주목걸이, 모파상


(3) book1 : 
동백꽃필무렵, 김유정
운수좋은날, 현진건
수난이대, 하근찬

(3) book2 : 
운수좋은날, 현진건
수난이대, 하근찬
운수좋은날, 현진건


(4) book1 : 
동백꽃필무렵, 김유정
그많던싱아는누가다먹었을까, 박완서
수난이대, 하근찬

(4) book2 : 
그많던싱아는누가다먹었을까, 박완서
수난이대, 하근찬
운수좋은날, 현진건


(5) book1 : 
동백꽃필무렵, 김유정
그많던싱아는누가다먹었을까, 박완서
수난이대, 하근찬

(5) book2 : 
운수좋은날, 현진건
수난이대, 하근찬
운수좋은날, 현진건​
728x90
반응형

'[JAVA]' 카테고리의 다른 글

[JAVA] 제어자  (0) 2024.01.03
[16일차 오전] lotto Calendar SimpleDateFormat LocalDateTime DateTimeFormatter  (0) 2024.01.03
[15일차 오전] Math random split StringBuffer  (0) 2024.01.02
[14일차 오후]  (0) 2023.12.29
[14일차 오전]  (0) 2023.12.29

+ Recent posts