프로그래밍/Java 공부

Object 클래스

개발계발게발 2021. 6. 4. 17:20
반응형

Object클래스는 java.lang내 최상위 클래스이며
   다른 타입들은 기본형 형태로 저장되어있다.
   자바가 api를 정의한 모든 클래스와 사용자가 만든 클래스의 최상위 클래스
   무든 클래슨느 이 Object를 상속받아서 사용

    
   Object는 자동으로 import된다.     
   Object  --- String
       --- Boolean
       --- StringBuffer
       --- Character
       --- Number     --- Byte
                           --- Short
                           --- Integer
                           --- Long
                           --- Float
                           --- Double
  

public class Object01 {
	public static void main(String[] args) {
		
		String str1 = "Hi";
		String str2 = new String("Hi"); // 다르다
		//String str2 = "Hi";
		
		System.out.println(str1);
		System.out.println(str2);
		
		if(str1 == str2) { // 객체에서 == 같은 객체?
			System.out.println("같다");
		}else {
			System.out.println("다르다");			//다르다
		}
		if(str1.equals(str2)) {
			System.out.println("같다");				//같다
		}else {
			System.out.println("다르다");
		}
		
		str2 = str1;		
        
		str1 = "Hello";			
        
		System.out.println(str1 == str2);	//false
		
		for (int i = 0; i < 10 ; i++) {
			str1 += i + " ";
		}
		System.out.println(str1);	//Hello0 1 2 3 4 5 6 7 8 9 
		System.out.println(str2);	//Hi
		
		System.out.println(str1.getBytes());	//[B@4926097b
		System.out.println(str2.getBytes());	//[B@762efe5d
		
		System.out.println(str1.getClass());	//class java.lang.String
		System.out.println(str2.getClass());	//class java.lang.String
		
		System.out.println(str1.hashCode());	//1049652869
		System.out.println(str2.hashCode());	//2337
	}
}

 

ID-PW비교 if문

import java.util.Scanner;

public class Object02 {
	public static void main(String[] args) {
		
		String id = "hong";
		String pw = "01234567";
				
		Scanner sc = new Scanner(System.in);
		int cnt = 0 ;
		boolean check = false;
		while(cnt<5&&check==false) {
			System.out.println("총 5회(현재 "+(5-cnt)+"회 남음)");
			System.out.println("ID를 입력하세요.");
			String inputID = sc.next();
			if(id.equals(inputID)) {
				System.out.println("pw를 입력하세요.");
				String inputPW = sc.next();
				if(pw.equals(inputPW)) {
					System.out.println("로그인 되었습니다.");
					check = true;
				}else {
					System.out.println("비밀번호가 잘못되었습니다.");
					cnt++;
				}				
			}else {
				System.out.println("Id 가 다릅니다. 다시 입력하세요");
				cnt++;
			}	
		}
		System.out.println("지정된 횟수를 초과하였습니다.");		
	}
}

 

String 사용 예제

		String str = "Hi";
		String str2 = new String("Hi");
		
		str = str + " java";
		System.out.println(str); //Hi java
		
		byte[] byteArr = { 97, 98, 99, 100 };
		
		String str3 = new String(byteArr);
		System.out.println(str3); //abcd
		
		String str4 = new String(byteArr, 0, 3); //abc
		System.out.println(str4);
		
		String str5 = new String(byteArr, 1,3); 
		System.out.println(str5);	//bcd
		
		System.out.println(str5.length());	// 3
		
		System.out.println(str5.charAt(str5.length()-1));	// d

 

concat

 

		//concat
		str2 = str2.concat(" JAVA");
		System.out.println(str2); //Hi JAVA

 

contains

 

//contains
		System.out.println(str2.contains("Hi"));//true
		System.out.println(str2.contains("hi"));//false

 

endWith

 

//endsWith
		System.out.println(str2.endsWith("A")); //true A로 끝나나?

 

indexOf, substring

 

		String email = "aaabbbc@naver.com";
		
		//indexOf
		System.out.println(email.indexOf('@'));//7
		
		System.out.println(email.contains("@"));//true
		
		//substring
		
		System.out.println(email.substring(0, email.indexOf('@')));	//aaabbbc
		System.out.println(email.substring(email.indexOf("@")+1));	//naver.com
		System.out.println(email.substring(email.indexOf("@")+1, email.length())); //naver.com

 

Email 체크 정규식

import java.util.Scanner;
import java.util.regex.Pattern;

public class EmailCheck {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		boolean check = false;
		String id = null, server = null;
		while(check==false) {
			System.out.print("이메일을 입력하세요 : ");
			String email = sc.next();			
			
			if(email.contains("@")||email.contains(".com")||email.contains(".co.kr")
					||email.contains(".net")||email.contains(".org")) {
				id = email.substring(0,email.indexOf("@"));
				server = email.substring(email.indexOf("@")+1);	
				
				if(Pattern.matches("^[a-zA-Z]+\\.[a-zA-Z]+$", server)) {				
					check = true;
				}
				else {
					System.out.println("잘못된 Domain 형식입니다.");
				}
			}
			else {
				System.out.println("잘못된 이메일 형식입니다.");
			}			
		}
		System.out.println("id : " + id);
		System.out.println("domain : " + server);
		System.out.println(Pattern.matches("^[a-zA-Z]+\\.[a-zA-Z]+$", server));

		if(id.length()>=5 && id.length() <= 10) {			
			if(Character.isUpperCase(id.charAt(0))) {
				if(Pattern.matches("^[a-zA-Z0-9]*$", id)) {
					 System.out.println("올바른 ID입니다.");
				}else{
					 System.out.println("ID는 영문자와 숫자로만 구성되어야합니다.");
				}		
			}
			else {
				System.out.println("id의 첫문자는 반드시 영어 대문자이어야 합니다.");
			}
		}
		else {
			System.out.println("id의 길이는 5~10자이어야 합니다.");
		}	

	}
}

 

 

StringBuffer  /  StringBuilder
 StringBuffer : 멀티 스레드 환경에서 사용할 수 있도록 동기화가 되어있다.
 기본 생성자로 생성하면 16개 문자가 들어가도록 초기 버퍼를 세팅

 StringBuilder : 단일 스레드 환경에서만 가용하도록 설계
 StringBuilder(int 값); 값만큼 문자를 저장하고 초기 버퍼를 세팅
 버퍼가 부족할 경우 자동으로 버퍼 크기를 늘리기 때문에
 초기 버퍼가 중요하지 않다.

 

 

import java.util.Arrays;

public class String02 {
	public static void main(String[] args) {
		StringBuilder sb = new StringBuilder();
//		sb = "java";
		sb.append("추가");
		sb.append("JAVA");
		
		System.out.println(sb); //추가JAVA
		
		sb.insert(2, "+");
		
		System.out.println(sb); //추가+JAVA
		
		sb.deleteCharAt(3);
		System.out.println(sb); //추가+AVA
		
		sb.delete(1, 4);		
		System.out.println(sb); //추VA
		
		//replace(); 원하는 위치의 문자,문자열을 교체
		//replace(1, 2, "SPRING"); index 2~6까지의 문자를 SPRING으로 교체
		sb.replace(1, 2, "SPRING");
		System.out.println(sb); //추SPRINGA
		
		//toString
		String str = sb.toString();
		System.out.println(str); //추SPRINGA
		
		char[] charArray = str.toCharArray();
		//[추, S, P, R, I, N, G, A]
		System.out.println(Arrays.toString(charArray));
		
		char[] charArray02 = Arrays.copyOf(charArray, charArray.length);
		//[추, S, P, R, I, N, G, A]
		System.out.println(Arrays.toString(charArray02));
		
		//Arrays.copyOfRange(원복, 시작index, 끝index);
		charArray02 = Arrays.copyOfRange(charArray, 2, 4);
		System.out.println(Arrays.toString(charArray02)); 		//[P, R]
		
		charArray02 = charArray.clone();
		System.out.println(Arrays.toString(charArray02));
		//[추, S, P, R, I, N, G, A]
		
		StringBuffer sb2 = new StringBuffer();
		sb2.append("JAVA");
		System.out.println(sb2); //JAVA
	}
}

 

 

반응형