Math
클래스는 흔히 계산을 하는 데 도움이 되는 많은 수의 기본적 수학 함수들을 제공한다.Math
클래스는 Java 표준 클래스 라이브러리의 java.lang
패키지에 정의되어 있다.Math
클래스의 모든 메서드들은 static
메서드로, 클래스 객체를 생성하지 않고 그 메서드가 정의된 클래스 이름을 통해 호출될 수 있다.Math 클래스에서는 double, float, int, long
등 다양한 타입을 취급한다. 정확한 대입 가능 타입의 범위와 더 많은 기능은 공식 문서에서 확인할 수 있다.
Math.max(int a, int b);
- 두 수 중 큰 값을 리턴한다.
int max = Math.max(100, 9000); System.out.println("최대값 = " + max); //출력결과 최대값 = 9000
Math.min(int a, int b);
- 두 수 중 작은 값을 리턴한다.
int max = Math.min(100, 9000); System.out.println("최소값 = " + max); //출력결과 최소값 = 100
Math.abs(int a);
- 절대값을 리턴한다.
int abs = Math.abs(-123); System.out.println("절대값 = " + abs); //출력결과 절대값 = 123
Math.round(double a);
- 소수점에서 반올림한다.
long num = Math.round(3.123456); System.out.println("반올림 = " + num); //출력결과 반올림 = 3
Math.PI();
- Math 클래스는 원주율값을 상수로 가지고 있다.
System.out.println("원주율 = " + Math.PI); //출력결과 원주율 = 3.141592653589793
String
은 java.lang.String
에서 제공하는 참조형 데이터 타입이지만 자주 사용되기 때문에 기본형 데이터 타입처럼 사용할 수 있도록 되어 있다. String
클래스에서는 문자열에 사용할 수 있는 다양한 기능을 제공한다.String
공식 문서에서 확인할 수 있다..length()
- 문자열의 길이를 리턴한다.
String str1 = "자바 Programming"; int str1_len = str1.length(); System.out.println(str1_len); // 출력결과 14
.indexOf(String str(+,int fromIndex))
- 찾는 문자가 등장하는 위치를 리턴한다.
파라미터에 추가로 정수를 입력하면 그 숫자를 인덱스로 한 위치부터 찾는다.int str1_pos = str1.indexOf(" "); System.out.println(str1_pos); // 출력결과 2
.lastIndexOf(String str(+,int fromIndex))
- 찾는 문자가 마지막으로 등장하는 위치를 리턴한다.
파라미터에 추가로 정수를 입력하면 그 숫자를 인덱스로 한 위치 이전부터 차례로 찾는다.int str1_last_pos = str1.lastIndexOf("m"); System.out.println(str1_last_pos); // 출력결과 10
.replace(char oldChar, char newChar)
- 특정 문자를 다른 문자로 변경한다.
String new_str1 = str1.replace(" ", "-"); System.out.println(new_str1); // 출력결과 자바-Programming
.toUpperCase() / .toLowerCase()
- 문자열을 대문자 또는 소문자로 변경한다.
String upper = str1.toUpperCase(); System.out.println(upper); String lower = str1.toLowerCase(); System.out.println(lower); // 출력결과 자바 PROGRAMMING 자바 programming
.trim()
- 문자열의 앞뒤 공백을 제거한다.
String input = " enjoy java programming "; String output = input.trim(); System.out.println(output); // 출력결과 enjoy java programming // 모든 공백을 제거하고자 할 때는 replace를 사용하여 " "를 ""로 변경한다.
.equals(Object anObject)
- 문자열을 비교 대상과 비교해 내용이 같은지에 대한 boolean 값을 리턴한다.
boolean isSame = str1.equals(str2); // str1과 str2가 같으면 true, 다르면 false
substring(int beginIndex(,int endIndex))
- 인덱스를 하나 입력하면 문자열을 인덱스부터 끝까지, 두 개 입력하면 첫번째 인덱스부터 두번째 인덱스 전까지 자른다.
String sub_str1 = str1.substring(0,2); System.out.println(sub_str1); // 출력결과 자바
String.format(String format, Object... args)
- 포맷과 포맷 내에 적용될 값들을 입력받아 적용 결과를 리턴한다.
int yy = 2023; int mm = 2; int dd = 1; String gender = "남성"; String result = String.format("%d년 %02d월 %02d일 %s",yy,mm,dd,gender); System.out.println(result); // 출력결과 2023년 02월 01일 남성
자주 사용되는 포맷 설정 형식
받는 값 응용 %d 정수 %3d와 같은 형태로 사용하면 숫자의 값에 자릿수를 맞춰 출력한다.
자릿수가 맞지 않으면 공백으로 채운다.
%03d와 같은 형태로 사용하면 공백 대신 0으로 채운다.
--------------------------------------------------------%s 문자 %3s와 같은 형태로 사용하면 숫자의 값에 자릿수를 맞춰 출력한다.
자릿수가 맞지 않으면 공백으로 채우며, %03s와 같은 형식은 적용 불가능하다.
--------------------------------------------------------%f float형 소수 정수와 같이 %3f, %03f 등의 형식을 사용할 수 있다.
%10.2f와 같은 형태로 사용하면 10자리에 맞춰 소수점은 2자리까지
출력하라는 의미로, 이 때 소수점 아래에서 생략되는 부분은 반올림된다..
도 자리수에 포함되며, 기본 %f는 %.6f와 같다.
소수점 아래 6자리가 되지 않는 float를 %f로 출력할 경우 6자리에 맞춰진다.
.split(String regex)
- 주어진 글자를 기준으로 문자열을 잘라 배열로 변환한다.
String src = "C++/Java/C#/JavaScript/VB"; String[] data = src.split("/"); // data = {"C++","Java","C#","JavaScript","VB"}
String.ValueOf(기본 데이터형 변수)
- 기본 데이터형을
String
객체로 변환해 준다. 다양한 자료형에 대해 오버로드되어 있는 메소드이다.boolean a = true; String str1 = String.valueOf(a); // str1은 "true"의 값을 갖는 문자열이 된다. double b = 123.4567d; String str2 = String.valueOf(b); // str2는 "123.4567"의 값을 갖는 문자열이 된다.
- 그러나 ValueOf를 사용하지 않더라도
""
을 더해 주는 것으로 간단하게 문자열로 변환할 수 있다.long c = 123456789L; String str3 = "" + c; // str3은 "123456789"의 값을 갖는 문자열이 된다.
이스케이프 문자는 프로그램의 문자열 안에 포함될 수 있는 특수문자로, 문자열 안에서 정상적인 방법으로 표현할 수 없는 문자를 표현하고자 하는 경우 사용한다.
ex) "JAVA" 출력
System.out.println("\"JAVA\""); // 출력결과 "JAVA"
이와 같이 출력하려는 특수문자 앞에 이스케이프 문자(\
)를 입력하면 원래 규칙을 무시하고 그대로 출력된다.