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
반응형