Java

[Java] 배열(Array)과 String 클래스의 사용법

에띠 2022. 4. 11. 16:23
728x90

Java 개발에서 배열과 String 클래스는 자주 사용되는 중요한 데이터 구조입니다. 배열은 여러 개의 값을 효율적으로 다룰 수 있도록 도와주고, String 클래스는 문자열을 쉽게 처리할 수 있게 해줍니다. 이 두 가지는 기본적이지만, Java 개발에서 매우 중요한 역할을 하므로 제대로 이해하는 것이 필요합니다. 이 글에서는 배열의 선언과 사용법, 그리고 String 클래스의 다양한 기능들을 살펴보겠습니다


본론: 배열(Array)과 String 클래스의 사용법

1. 배열(Array)의 사용법

배열은 동일한 데이터 타입의 값들을 연속적으로 저장할 수 있는 자료형입니다. 여러 개의 값을 다루기 위해 개별 변수를 많이 선언할 필요 없이 배열 하나로 여러 값을 처리할 수 있습니다. 예를 들어, 학생들의 점수나 과일의 이름을 저장할 때 배열을 사용하면 편리합니다.

배열 선언 및 메모리 할당

배열을 선언하는 방법은 다음과 같습니다:

데이터타입[] 배열명;
int[] num;  // int 타입의 배열 num 선언

 

 

배열의 메모리 할당(크기 지정)

배열의 크기를 지정하고 메모리를 할당하려면 new 키워드를 사용합니다:

배열명 = new 데이터타입[배열 크기];
num = new int[3];  // 크기가 3인 int 배열 생성

 

 

배열을 선언과 동시에 메모리 할당을 할 수도 있습니다:

 

int[] num = new int[3];  // 선언과 동시에 메모리 할당

 

배열 초기화

배열의 각 요소는 개별적으로 값을 할당할 수 있습니다. 예를 들어:

num[0] = 10;
num[1] = 20;
num[2] = 30;

배열의 크기 범위는 0부터 배열 크기-1까지입니다. 배열의 범위를 벗어나면 ArrayIndexOutOfBoundsException 오류가 발생할 수 있습니다. 예를 들어, 위의 배열에서 num[3] = 40;은 오류를 일으킵니다.


이차원 배열

이차원 배열은 행과 열로 구성된 배열입니다. 예를 들어, 2행 3열의 배열을 만들 때는 아래와 같이 선언합니다:

int[][] num = new int[2][3];

  행 [0,0][0,1][0,2] // 0행

       [1,0][1,1][1,2] // 1행

 //    0열 1열  2열

이 배열의 각 요소는 2차원 구조로 저장됩니다. 각 행에 대한 인덱스는 0부터 시작하고, 각 열도 0부터 시작합니다.

 

 

배열 값 미리 지정하기

배열의 값을 선언 시 바로 지정할 수도 있습니다.

  1차원배열

  int[] num = new int[5];
  num[0] = 10;
  num[1] = 20;
  num[2] = 30;
  num[3] = 40;
  num[4] = 50;
int[] num = {10, 20, 30, 40, 50};

  

  2차원배열

  int[][] num = new int[2][3];
  num[0][0] = 10;
  num[0][1] = 20;
  ...
  num[1][2] = 60;
int[][] num = {{10, 20, 30}, {40, 50, 60}};

향상된 for문 사용하기

배열의 요소를 반복적으로 처리할 때는 향상된 for 문을 사용하면 유용합니다. 예를 들어:

for(변수선언 : 배열) {
  배열의 요소만큼 반복할 문장;
  ...
}

 

 

String[] args1 = {"김사과", "반하나", "오렌지", "이메론"};

for (String s : args1){

  System.out.print(s + " ");

}

 

int[] args2 = {1, 3, 5, 7, 9};

for (int i : args2) { 

  System.out.println(i);

}

 

 

위의 예시처럼 배열을 간편하게 반복할 수 있습니다.


2. String 클래스의 사용법

String 클래스는 Java에서 문자열을 처리하는 주요 클래스입니다. 문자열을 비교하거나 변환할 때 자주 사용됩니다. 문자열을 다룰 때는 String 클래스의 다양한 메소드를 활용할 수 있습니다.

문자열 선언과 초기화

String 변수는 아래와 같이 선언하고 초기화할 수 있습니다:

 

변수 선언 및 값 지정

String 변수명 = "문자열";
String str = "apple";

 

문자열 비교

문자열을 비교할 때는 == 연산자와 equals() 메소드를 사용합니다. ==는 메모리 주소를 비교하고, equals()는 을 비교합니다.

public class String1 {
    public static void main(String[] args) {
        String str1 = new String("apple");
        String str2 = new String("apple");
        String str3 = "apple";
        String str4 = "apple";
	
        System.out.println(str1 == str2);  // false (주소 비교)
        System.out.println(str1.equals(str2));  // true (값 비교)
        System.out.println(str3 == str4);  // true (리터럴은 같은 객체를 참조)
        System.out.println(str3.equals(str4));  // true (값 비교)
    }
}

String 클래스의 주요 메소드

  • concat(): 문자열을 이어붙이는 메소드입니다.

 

String str1 = "Hello";
String str2 = "World";
System.out.println(str1.concat(" " + str2));  // 결과: "Hello World"

 

  • indexOf(): 특정 문자의 인덱스를 찾는 메소드입니다. 찾을 수 없으면 -1을 반환합니다.
String str1 = new String("Java");
String str2 = "Programming";

System.out.println(str2.indexOf("p")); // 찾지못함. -1
System.out.println(str2.indexOf("P")); // 0
System.out.println(str2.indexOf('P')); // 0
System.out.println(str2.indexOf("gra")); // 문자열의 시작 인덱스. 3

 

  • trim(): 문자열의 앞뒤 공백을 제거합니다.

 

String str3 = new String("    자바        ");
String str3 = new String("    자바        ");

System.out.println(str3 + "🤤"); //     자바        🤤
System.out.println(str3.trim() + "🍔"); // 자바🍔

 

  • toLowerCase() / toUpperCase(): 문자열을 소문자 또는 대문자로 변환합니다.

 

String str = "Java";

System.out.println(str.toLowerCase());  // 결과: "java"
System.out.println(str.toUpperCase());  // 결과: "JAVA"

 

 
  • length(): 문자열의 길이를 반환합니다.

 

String str = "Programming";

System.out.println(str.length());  // 결과: 11

 

 
  • substring(): 문자열의 일부를 추출하는 메소드입니다.

 

String str = "Programming";

System.out.println(str.substring(3));  // 결과: "gramming"
System.out.println(str.substring(3, 6));  // 결과: "gra"

 

  • parseInt(): 문자열을 정수로 변환합니다.

 

String str = "100";
int number = Integer.parseInt(str);

System.out.println(number + 200);  // 300. 문자열을 정수형으로 변환되어서 연산이 일어남.

배열과 String 클래스는 Java에서 자주 사용되는 기본적인 요소들입니다. 배열을 사용하면 여러 개의 데이터를 효율적으로 처리할 수 있고, String 클래스는 문자열을 다룰 때 필요한 기능들을 제공합니다. 배열과 문자열을 적절하게 활용하면 코드의 가독성을 높이고, 프로그램을 더욱 효율적으로 만들 수 있습니다.

Java 개발을 하면서 배열과 문자열을 잘 다루는 능력은 매우 중요하므로, 위에서 설명한 내용을 충분히 익히고 다양한 실습을 통해 연습하는 것이 좋습니다.

728x90