Java/Java 이론

JAVA API 함수

2주녘 2023. 9. 26. 16:45
반응형

프로그램 종료(System.exit( ))

package chap11.sec01.exam04;

/**
 * packageName : chap11.sec01.exam04
 * fileName : ExitApplication
 * author : GGG
 * date : 2023-09-26
 * description : System 클래스의 함수들 exit()
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class ExitApplication {
    public static void main(String[] args) {
        // TODO : 0 ~ 10까지 수 중에 값이 5일 때 프로그램을 강제 종료하세요
        for (int i = 0; i < 10; i++) {
            if(i == 5){
//                break;    // 반복문 종료
                System.exit(i); // 프로그램 강제 종료(kill), 밑에 코드가 실행안됨
            }
        }
        System.out.println("이 코드 실행?");     // 실행 안됨
    }
}

 

소요시간 체크함수 (.nanoTime())

package chap11.sec01.exam04;

/**
 * packageName : chap11.sec01.exam04
 * fileName : SystemTimeApplication
 * author : GGG
 * date : 2023-09-26
 * description : System 객체 : 소요시간 체크 함수 .nanoTime()
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class SystemTimeApplication {
    public static void main(String[] args) {
//        1) 처음 시간 체크 (컴퓨터 설정된 현재시간)
        long time = System.nanoTime(); // 1/10^9 시간
//        2) 실행
        int sum = 0;
        for (int i = 1; i <= 1000000; i++) {
            sum += i; //누적합
        }
//        3) 마지막 시간 체크
        long time2 = System.nanoTime(); // 1/10^9 시간
//        4) 마지막 시간 - 처음 시간 = 소요시간
        System.out.println("1~백만까지 합 : " + sum);
        System.out.println("소요시간(ns) : " + (time2 - time));
    }
}

-------------- 실행결과
1~백만까지 합 : 1784293664
소요시간(ns) : 2100200

 

Class 클래스

package chap11.sec01.exam05;

/**
 * packageName : chap11.sec01.exam05
 * fileName : CarApplication
 * author : GGG
 * date : 2023-09-26
 * description : Class 클래스 소개 : 클래스의 정보보기
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class CarApplication {
    public static void main(String[] args) {
        // TODO : Class => 자바에서 클래스의 정보(패키지명, 클래스명, 경로명 등)가 있는 객체
        //   java -> 컴파일(빌드) -> .class
        Class clazz = Car.class;

        // TODO : 정보 보기
        System.out.println(clazz.getPackage().getName());       // 패키지 정보보기
        System.out.println(clazz.getName());                    // 패키지 + 클래스명 정보가 출력(full 클래스명)
        System.out.println(clazz.getSimpleName());              // 패키지명 제외한 클래스명 정보보기
    }
}


------ 실행결과
chap11.sec01.exam05
chap11.sec01.exam05.Car
Car

 

ByteToString

byte 배열 -> 문자열(String)로 변환하기

package chap11.sec01.exam06;

/**
 * packageName : chap11.sec01.exam06
 * fileName : ByteToStringApplication
 * author : GGG
 * date : 2023-09-26
 * description :  byte 배열 -> 문자열(String)로 변환하기
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class ByteToStringApplication {
    public static void main(String[] args) {
        byte[] bytes = {72, 101, 108, 108, 111, 32, 74, 97, 118, 97};

        // TODO : byte 배열 -> 문자열 변환
        //  사용법 : new String(byte배열);
        String str1 = new String(bytes);
        System.out.println(str1);
        // TODO : 참고) 응용 : 사용법 : new String(byte배열, 인덱스번호, 문자열길이)
        String str2 = new String(bytes, 6, 4);
        System.out.println(str2);
        
    }
}

--------- 실행결과
Hello Java
Java

 

StringToByte

문자열 -> byte 배열로 변환

package chap11.sec01.exam08;

/**
 * packageName : chap11.sec01.exam08
 * fileName : StringToByteApplication
 * author : GGG
 * date : 2023-09-26
 * description : 문자열(String) => byte 배열 변환
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class StringToByteApplication {
    public static void main(String[] args) {
        String str = "안녕하세요";

        // TODO : 문자열 -> byte[] 변환
        //  사용법 : 문자열.getBytes() => byte[] 리턴
        byte[] bytes = str.getBytes();
        System.out.println("길이 : " + bytes.length);
    }

}

----- 실행결과
길이 : 15

 

String Char

charAt() 

문자열에서 어떤 인덱스 번호의 한 문자 조회하기

문자열.charAt(인덱스번호);
package chap11.sec01.exam07;

/**
 * packageName : chap11.sec01.exam07
 * fileName : StringCharApplication
 * author : GGG
 * date : 2023-09-26
 * description : 문자열에서 어떤 인덱스번호의 한문자 조회하기 : charAt(인덱스번호)
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class StringCharApplication {
    public static void main(String[] args) {
        // 주민번호
        String ssn = "123456-1234567";
        // TODO : 1문자 가져오기
        char gender = ssn.charAt(7);        // '1' 문자를 가져옴
        if(gender == '1' || gender == '3'){
            System.out.println("남자입니다.");
        } else if(gender == '2' || gender == '4'){
            System.out.println("여자입니다.");
        }
    }
}

-------- 실행결과
남자입니다.

 

String 클래스의 함수 : IndexOf()

package chap11.sec01.exam09;

/**
 * packageName : chap11.sec01.exam09
 * fileName : IndexOfApplication
 * author : GGG
 * date : 2023-09-26
 * description : String 클래스의 함수 : IndexOf()
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class IndexOfApplication {
    public static void main(String[] args) {
        String subject = "자바 프로그래밍";

        // TODO : 전달된 문자열이 시작되는 인덱스번호를 리턴 : indexOf(문자열)
        int location = subject.indexOf("프로그래밍");
        System.out.println(location);

        // TODO : (참고) 찾는 문자열이 없으면 : -1 리턴
        int location2 = subject.indexOf("파이썬");
        System.out.println(location2);        
    }
}
----------- 실행결과
3
-1

 

String 클래스의 함수 : length()

문자열 길이를 리턴하는 함수

package chap11.sec01.exam10;

/**
 * packageName : chap11.sec01.exam10
 * fileName : LengthApplication
 * author : GGG
 * date : 2023-09-26
 * description : String 클래스 함수 : 문자열 길이 리턴하는 함수 : length()
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class LengthApplication {
    public static void main(String[] args) {
        String ssn = "123456-1234567";
        // TODO : 문자열 길이 출력 : 문자열.length()
        System.out.println(ssn.length());
    }
}

---- 실행결과
14

 

String 클래스의 함수 : replace()

문자열 바꾸기 함수

package chap11.sec01.exam11;

/**
 * packageName : chap11.sec01.exam11
 * fileName : ReplaceApplication
 * author : GGG
 * date : 2023-09-26
 * description : String 클래스의 함수 : 문자열 바꾸기 함수 : replace()
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class ReplaceApplication {
    public static void main(String[] args) {
        // 자바 API : 자바의 유용한 함수 묶음
        String oldStr = "자바는 객체지향언어입니다. 자바는 풍부한 API도 지원합니다.";
        // TODO : 문자열 바꾸기 : 문자열.replace(이전문자, 바꿀문자);
        String newStr = oldStr.replace("자바","Java");
        System.out.println(newStr);
    }
}

--- 실행결과
Java는 객체지향언어입니다. Java는 풍부한 API도 지원합니다.

 

String 클래스의 함수 : substring()

문자열 자르기 함수

package chap11.sec01.exam12;

/**
 * packageName : chap11.sec01.exam12
 * fileName : SubStringApplication
 * author : GGG
 * date : 2023-09-26
 * description : String 클래스의 함수 : 문자열 자르기 함수 : substring()
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class SubStringApplication {
    public static void main(String[] args) {
        String ssn = "123456-1234567";

        // TODO : 문자열 자르기 : 문자열.substring(시작인덱스위치, 마지막인덱스위치)
        //        ( 시작인덱스위치 ~ 마지막인덱스위치 - 1 )
        String firstNum = ssn.substring(0, 6);
        System.out.println(firstNum);       // 주민번호 앞자리 숫자 출력

        // TODO 응용) 문자열.substring(시작인덱스번호);
        //           (시작인덱스위치 ~ 끝까지 잘림)
        String lastNum = ssn.substring(7);
        System.out.println(lastNum);        // 주민번호 뒷자리 숫자


    }

}


----- 실행결과
123456
1234567

 

String 클래스의 함수 : trim()

문자열의 앞 뒤 공백을 제거 후 문자열을 리턴하는 함수

package chap11.sec01.exam13;

/**
 * packageName : chap11.sec01.exam13
 * fileName : TrimApplication
 * author : GGG
 * date : 2023-09-26
 * description : String 클래스 함수 : 문자열 앞/뒤 공백 없애기 함수 : trim()
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-26         GGG          최초 생성
 */
public class TrimApplication {
    public static void main(String[] args) {
        String tel = " 12345 ";     // 앞/뒤 공백이 있는 문자열
        // TODO : 앞/뒤 공백없애기 함수 : 문자열.trim();
        System.out.println(tel.trim());
    }
}

------- 실행결과
12345

 

Wrapper 클래스의  boxing/unboxing

 *          기본 자료형     : byte, short, int, long, float, double, char, boolean
 *          Wrapper 클래스 : 위의 자료형을 객체형으로 제공하는 클래스 
 *                                   Byte, Short, Integer, Long, Float, Double, Character, Boolean
 *          과거 코딩 :
 *          int -> Integer 변환 : API 함수를 사용해서 변환했음(Boxing)
 *          Integer -> int 변환 : (Unboxing)
 *          현대 코딩 :
 *          자동 변환 (함수 사용없이 자동변환됨)

 

public class BoxingApplication {
    public static void main(String[] args) {
        // TODO : 기본자료형 -> Wrapper 클래스로 변환
        //  과거 방식 : boxing
        Integer obj1 = new Integer(100);
        //  현대 방식
        Integer obj2 = 100;     // 자동 변환

        // TODO : Unboxing
        //  과거 방식
        int value1 = obj1.intValue();       // 원복 (함수호출)
        // 현대 방식
        int value2 = obj2;                  // 자동 변환

        System.out.println(value1);
        System.out.println(value2);


    }
}

-------- 출력결과
100
100

 

Math객체의 함수들

package chap11.sec01.exam15;

/**
 * packageName : chap11.sec01.exam20
 * fileName : MathApplication
 * author : ds
 * date : 2022-10-05
 * description : 수학함수들 . Math 객체의 함수들
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2022-10-05         ds          최초 생성
 */
public class MathApplication {
    public static void main(String[] args) {

        // TODO : 랜덤 함수 : 0 <= x < 1 값
        //  Math 클래스 : random() (정적(공유)함수 : 클래스명.함수명())
        double v11 = Math.random();
        System.out.println("v11=" + v11);
        // TODO : Math.abs(숫자); : 절대값 함수
        int v1 = Math.abs(-5);
        System.out.println("v1= " + v1);
        // TODO : Math.max(숫자1, 숫자2); 최대값 구하는 함수
        int v7 = Math.max(5,9);
        System.out.println("v7=" + v7);
        // TODO : Math.min(숫자1, 숫자2); 최소값 구하는 함수
        int v9 = Math.min(5,9);
        System.out.println("v9=" + v9);
        // TODO : Math.ceil(숫자); 소수점 올림 구하기(무조건 첫째자리에서 올림)
        double v3 = Math.ceil(5.3);
        System.out.println("v3=" + v3);
        // TODO : Math.floor(숫자); 소수점 버림 구하기(무조건 첫째자리에서 버림)
        double v5 = Math.floor(5.3);
        System.out.println("v5=" + v5);
        // TODO: Math.round(숫자); 반올림(무조건 첫째자리에서 반올림)
        double v14 = Math.round(5.3); // 5
        System.out.println("v14=" + v14);

        // TODO (참고) 응용 : 셋째자리에서 반올림하기
        //   1) 100을 곱하고 2) 반올림 구하고 3) 100 나누기
        double value = 12.3456;     // 셋째자리에서 반올림
        double temp = value * 100;  // 1)
        long temp2 = Math.round(temp);  // 2)
        double v16 = temp2/100.0; // 3)
        System.out.println("v16=" + v16);

    }
}

--- 결과
v11=0.7381840307023227
v1= 5
v7=9
v9=5
v3=6.0
v5=5.0
v14=5.0
v16=12.35

 

반응형