Java 메서드 및 문법 실습

이종훈·2025년 5월 30일
2

개발 일지

목록 보기
12/21
post-thumbnail

Java 메서드 및 문법

1. 배열 관련 메서드

String[] arr1 = new String[5]; // 문자열 배열 생성 및 초기화
Integer[] arr2 = {1, 2, 33, 4, 5, 26, 7, 8, 9}; // 숫자 배열 생성 및 초기화
arr1 = new String[] {"one", "two"}; // 생성 후 값 초기화

배열에도 타입이 여러 가지가 있습니다(string, int 등) 따라서 각 타입에 맞게 배열을 생성하고 초기화합니다.
배열 뿐만 아니라 기본적인 모든 변수값은 생성과 동시에 값을 초기화할 수 있고, 이후 값의 변동이 있다면 값을 재할당할 수 있습니다.

2. 반복문(for)

for(int i=0; i < arr2.length; i++) { // 기본 형태의 반복문
      System.out.println(arr2[i]);
    }
   
for(String s: arr1) { // for-each 형태의 반복문
      System.out.println(s);
    }

기본적으로 c, python, java 모두에서 활용되는 방식인 for문은 여러 방식이 있습니다.
우선 기본형 for문은 직접 인덱스를 사용해서 배열의 요소에 접근합니다. 인덱스를 직접 제어하기 때문에 특정 위치 제어, 부분 출력, 순회 등 여러 연산에 사용됩니다.
반면 for-each문 기반의 for문은 배열의 각 요소를 자동으로 꺼냅니다. 단순 순회에 적합하고 코드가 간단하다는 장점이 있지만 인덱스를 제어할 수 없어 여러 연산에 사용하기는 부적합합니다.
따라서 여러 연산을 활용하는 코딩 테스트 문제에서는 기본 for문이 적합할 것 같습니다.

3. 정렬 메서드

Arrays.sort(arr2); // 정렬

Arrays.sort(arr2, Collections.reverseOrder()); // 역정렬

배열의 요소들을 정렬할 때 sort 메서드를 활용할 수 있습니다.
sort 정렬은 기본적으로 오름차순이 기준이며, 내림차순으로 역정렬 시에는 Collections.reverseOrder()메서드를 활용할 수 있습니다.

4. 길이 반환 메서드(length vs length() vs size())

String[] arr1 = new String[5]; // 배열 생성 및 초기화
Integer[] arr2 = {1, 2, 33, 4, 5, 26, 7, 8, 9};
String str = "hello";
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));

int num1 = arr1.length;
int num2 = arr2.length;
int num3 = str.length();
int num4 = list.size();

특정 변수의 길이를 반환하는 메서드로 length, length(), size() 메서드가 있습니다. 이 3가지 메서드는 변수의 타입에 맞게 활용되어야 합니다.
1. length 메서드는 배열에 사용해야 합니다. 배열의 타입(integer, string, int 등)은 상관없습니다.
2. length() 메서드는 문자열 타입에 사용해야 합니다.
3. size() 메서드는 List, Set, Map 같은 컬렉션 데이터 타입에 사용해야 합니다.

5. string 관련 메서드

System.out.println(str.isEmpty()); // 문자열의 값 여부 확인

System.out.println(str.indexOf("n")); // 특정 문자 인덱스 확인(첫 번째)

System.out.println(str.lastIndexOf("x")); // 특정 문자 인덱스 확인(마지막)

System.out.println(str.charAt(2)); // n번째 인덱스 반환

System.out.println(str.substring(3)); // 인덱스 n 이상의 문자열 반환

System.out.println(str.contains("xx")); // 특정 문자열 포함 여부 반환

System.out.println(str.toUpperCase()); // 대문자 변경 - 반대는 Lower

문자열 관련 메서드는 다양하게 활용됩니다. 메서드를 통해 문자열의 값 여부 확인, 특정 문자 인덱스 확인 등 문자열 관련 다양한 연산을 할 수 있습니다.

6. 문자열 및 배열 관련 문법

String str = new String("hello world");
String str2 = "hello";

int[] arraytest = new int[] {1, 2 ,3};
int[] arraytest2 = {1, 2, 3};
String[] arraytest3 = {"1", "2"};

System.out.println(str);
System.out.println(str2);
System.out.println(Arrays.toString(arraytest));
System.out.println(Arrays.toString(arraytest2));
System.out.println(Arrays.toString(arraytest3));

우선 문자열 및 배열 선언 시 new 키워드를 사용하거나 직접적으로 바로 값을 할당하는 방식이 있습니다. new 키워드는 새로운 메모리 공간을 할당하기 때문에 같은 값에 대해서도 다른 메모리 공간을 통해 값을 새로 할당합니다. 반면 직접적으로 할당하는 방식은 동일한 값에 대해서는 새로운 공간을 할당하지 않고 값을 재사용합니다.
그리고 배열 출력 시 문자열과 달리 직접적으로 출력하게 되면 이상한 값이 출력됩니다. 이는 배열은 직접 출력하게 되면 배열의 내용이 아니라 객체 참조 정보값이 출력되기 때문입니다. 따라서 배열의 모든 인덱스 값을 전체적으로 출력하고 싶다면 반복문을 통해 모든 인덱스를 거쳐 출력하거나, 더 간편한 방법으로는 Arrays.toString() 메서드를 통해 [""] 형태로 배열의 전체 값을 출력할 수 있습니다.

profile
종훈리의 개발일지

1개의 댓글

comment-user-thumbnail
2025년 6월 2일

그남자의 메소드

답글 달기