DAY08(4) - Math, String

은나현·2023년 2월 1일
0

📌 1. Math 클래스

📍 1-1. 수학적 연산 지원

  • Math 클래스는 흔히 계산을 하는 데 도움이 되는 많은 수의 기본적 수학 함수들을 제공한다.
  • Math 클래스는 Java 표준 클래스 라이브러리의 java.lang패키지에 정의되어 있다.
  • Math 클래스의 모든 메서드들은 static 메서드로, 클래스 객체를 생성하지 않고 그 메서드가 정의된 클래스 이름을 통해 호출될 수 있다.

📍 1-2. Math 클래스 기능 예시

  • 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               

📌 2. String 클래스

📍 2-1. 문자열 관련 기능 지원

  • Stringjava.lang.String에서 제공하는 참조형 데이터 타입이지만 자주 사용되기 때문에 기본형 데이터 타입처럼 사용할 수 있도록 되어 있다.
  • String 클래스에서는 문자열에 사용할 수 있는 다양한 기능을 제공한다.

📍 2-2. 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와 같은 형식은 적용 불가능하다.
      --------------------------------------------------------
      %ffloat형 소수정수와 같이 %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"
    • 이와 같이 출력하려는 특수문자 앞에 이스케이프 문자()를 입력하면 원래 규칙을 무시하고 그대로 출력된다.

0개의 댓글