2주차 새로운 함수들

Cloudman·2022년 11월 28일
0

항해99

목록 보기
8/10

이 글은 2주차에서 배운 함수들을 정리해놓은 글이다.

즉, 계속해서 추가가 될지는 지금 당장으로서는 무리일거 같지만 이 후에도 계속 유지해 나가도록 하자.




🔗 IntStream

자바 8에서 추가한 Stream 은 람다를 활용할 수 있는 기술 중 하나이다.
스트림은 "데이터의 흐름" 을 의미한다. 배열 또는 컬렉션 인스턴스에 함수 여러 개를
조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있다.
아래는 배열을 Stream 을 변환하는 방법 중 하나이다.

append
는 문자열 끝에 문자열을 추가하는 명령어 이다.

toString
는 메서드는 객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메소드 이다.



🔗 substring

substring 은 문자열을 자르는 역할을 하는 메소드 이다.
substring() 인자로 전달된 index를 기준으로 문자열을 자르고 String 을 리턴한다.

public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)

인자로 beginIndex 만 전달하면 이 index 가 포함된 문자부터 마지막까지 잘라서 리턴한다.

인자로 beginIndex, endIndex 를 모두 전달하면 begin포함한 문자부터 endIndex 이전 index 문자까지 잘라서 리턴

즉 위에서는 abcde 의 경우 index 3 인 3번째 c 가 리턴되었고
qwer 의 경우에는 index 1, 3we 가 리턴된 것이다.




🔗 등차수열 Math.max , Math.min

Math.max() , Math.min() 는 괄호 안의 두 인자 값 중에 큰 값을 또는 작은 값을 리턴하는 함수이다.

Math.max(5, 1); = 5 를 리턴한다.
Math.min(3, 6); = 3 을 리턴한다.

만약 저기에 같은 숫자가 들어가면 어떨까 ??
그래서 한번 계산을 해봤더니...

Math.max(5, 5); = 5 를 리턴한다.
Math.min(3, 3); = 3 를 리턴한다.

같은 숫자가 들어가면 에러를 띄우는게 아닌 둘 중 하나를 리턴해 주는 것 같다.




🔗 repeat

String 문자열을 파라미터의 주어진 횟수만큼 반복한다.

String strtest = "오아";
System.out.println(strtest.repeat(5));

위 처럼 해주면 결과가
오아오아오아오아오아 가 된다.
이처럼 매우 간단하지만 활용하기에는 좋은 듯 하다.




🔗 String.toCharArray()

문자열을 한 글자씩 쪼개서 이를 char 타입의 배열에 집어넣어 주는 역할을 하는 메서드 이다.

char[] ch = phone_number.toCharArray();
위에서 쓰였듯이 이렇게 문자열을 char 타입 배열로 바꿔줄 수 있다.

추가로, char 타입을 합쳐서 하나의 String(문자열)로 만들 수 있다
String s2 = new String(charArr);




🔗 String.valueOf

앞전에 사용했던 Integer.parseInt 와 비슷하게 사용하면 된다.
파라미터로 숫자로 변환할 문자열을 입력받는다.
괄호 안의 객체를 문자열로 변환하는 역할을 한다.
괄호 안의 지정값은 boolean, char, int, double 등 다양하게 가능하다.




🔗 Calendar

참고 링크 : https://moonong.tistory.com/10

Calendar 클래스는 Date 클래스와 마찬가지로 날짜와 시간을 다루는 클래스이다.
Date 클래스는 문제성이 발견되고 Calendar 클래스의 등장으로 인해 대부분의 Date 메소드는 deprecated 되어 잘 사용하지 않는다.
추상 클래스이기 때문에 직접 new 하여 객체 생성이 불가능하고,
주로 Calendar.getInstance() 메소드를 이용하는 편이다.

위에서 한것 처럼 set 으로는 특정 년월일로 지정할 수 있고
get 으로는 지정한 날짜로부터 가져올 수 있다.

cal.set(2016, 12-1, 25); : 2016년 11월 25일
int day_num = cal.get(Calendar.DAY_OF_WEEK); : cal 의 날짜로부터 요일을 가져온다.
즉, 25일째 되는 날의 숫자 1~7(일요일 부터 시작) 를 가져온다.
cal.set(Calendar.YEAR, 2019); : 년도를 2019 년으로 설정

위에 처럼 다양하게 적용해서 가져오고 지정할 수 있다.




🔗 toLowerCase, toUpperCase

참고 링크 : https://mozi.tistory.com/499
참고 링크 : https://velog.io/@uhan2/java-String.toCharArray-%EC%82%AC%EC%9A%A9%EB%B2%95

문자열 처리를 위해 JDK 에서 제공하는 String 클래스가 있습니다.
String 클래스에서는 문자열을 대소문자로 변환할 수 있는 함수가 있다.
toLowerCase 는 모든 문자열을 소문자로 변환
toUpperCase 는 모든 문자열을 대문자로 변환




🔗 toCharArray

문자열을 한 글자씩 쪼개서
이를 char타입의 배열에 집어넣어주는 친절한 메소드이다.

아래처럼 입력해주면 결과를 직접 볼 수 있다.

즉, String(문자열) 을 char 타입 배열로 바꿔 주는 역할이다.

String strtest = "Java prac";
char[] chartest = strtest.toCharArray();
for (int i = 0; i < chartest.length; i++) {
    System.out.printf("%d 번째 char 는 %s 이다.\n", i, chartest[i]);
}




🔗 matches

참고 링크 : https://codechacha.com/ko/java-string-matches/

특정 패턴의 문자열을 포함하는지 확인 하는 메서드 이다.
특정 패턴이란 정규표현식(Regex) 를 의미한다.
이에 대한 응답으로는 boolean 인 true 와 false 로 리턴한다.

위에서 사용된 경우를 예시로 들면

if (s.length() == 4 || s.length() == 6) {
    if (s.matches("^[0-9]*$")) {
        answer = true;
    }
}

s 라는 문자열에 숫자만 들어가 있을 경우에는 true 를 리턴하고
만약, 숫자가 아닌 다른 문자가 섞여 있으면 false 를 리턴한다.




🔗 Arrays

참고 링크 : http://www.tcpschool.com/java/java_api_arrays
참고 링크 : https://kutar37.tistory.com/entry/%EC%9E%90%EB%B0%94-Arrays-%EB%A9%94%EC%86%8C%EB%93%9C

java.util 패키지에는 프로그램 개발에 있어서 사용할 수 있는 유용한 유틸 클래스가 다수 있다.
이러한 클래스 들은 자바 내에서 import 해 주어야 사용이 가능하다.
Arrays 클래스에는 배열을 다루기 위한 다양한 메소드가 포함되어 있다.

아래의 사진처럼 저러한 식으로 먼저 import 해주면 사용이 가능해진다.




🔗 sort

정렬할 때 쓰이는 기능으로 sort() 를 하면 오름차순 정렬이 된다.

사용법은 아래의 사진을 참고하자.

위 처럼 처음의 배열에서 sort 를 사용하면

이처럼 a 부터 오름차순으로 정렬되어서 나온것을 확인할 수 있다.




🔗 contains

참고 링크 : https://mine-it-record.tistory.com/137

대상 문자열에 특정 문자열이 포함되어 있는지 확인하는 함수이다.
동시에 대소문자 또한 구분한다. 공백도 체크한다.

직접 테스트 해본 결과 위처럼 나온다.




🔗 Math.floor

참고 링크 : https://itdar.tistory.com/entry/Java-%EC%9E%90%EB%B0%94-Math-class-roundceilfloorabs-%EB%B0%98%EC%98%AC%EB%A6%BC%EC%98%AC%EB%A6%BC%EB%82%B4%EB%A6%BC%EC%A0%88%EB%8C%80%EA%B0%92

Math 클래스에서 사용되는 함수이다.
입력된 값 인자 값보다 작거나 같은 가장 큰 정수 값을 double 타입으로 형변환 한다.
floor 외에도 ceil(올림)round(반올림) 도 있다.

직접 테스트 해본 결과 위처럼 나온다.




🔗 Math.sqrt

자바에서 특정값의 제곱근(루트) 를 구하기 위해서 사용되는 함수이다.
이 또한 Math 클래스에 포함되어 있는 함수이며 위에서 배운 floor 처럼 double 타입으로 형변환 된다.

참고 링크 : http://daplus.net/java-double%EC%9D%B4-%EC%A0%95%EC%88%98%EC%9D%B8%EC%A7%80-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95/
참고 링크 : https://coding-factory.tistory.com/532

직접 테스트 해본 결과 위 처럼 결과가 나오는 것을 볼 수 있다.




🔗 HashSet

참고 링크 : https://tychejin.tistory.com/145

중복을 허용하지 않고, 순서가 유지되지 않는 컬렉션 클래스를 구현하는데 사용되는 인터페이스이다.
위에서 사용한 것 처럼 사용해주면 된다. 아래가 사용한 예시이다.

ArrayList<Integer> nums = new ArrayList<>();

HashSet<Integer> test = new HashSet<Integer>(nums);
nums = new ArrayList<Integer>(test);
profile
코린이

0개의 댓글