[Java의 정석] String 배열

younghyun·2022년 7월 4일
0

Java의 정석

목록 보기
2/12
post-thumbnail

String 배열의 선언과 생성

// 100개의 문자열을 담을 수 있는 배열 생성
String[] array = new String[100];

이 때 참조형 변수의 기본 값은 null이므로 각 요소의 값은 null로 초기화 된다.

배열의 초기화

String[] array = new String[]{"a", "b", "c"};
String[] array = {"a", "b", "c"};

char배열과 String 클래스

String 클래스는 char 배열에 기능(메서드)를 추가한 것이다.
따라서 String 클래스를 사용하는 것이 문자열을 다루기에 더 편리하다.

  • char 배열과 달리, String 객체는 내용을 변경할 수 없다.

String 클래스의 주요 메서드

String str = "ABCDE"

// charAt(인덱스): 문자열에서 해당 인덱스에 있는 문자를 반환
char ch = str.charAt(3);    // 실행 결과: D

// subString(시작,끝): 문자열에서 해당 범위에 있는 문자열을 반환 (범위가 끝-1 까지임을 주의)
string tmp = str.subString(1,4);  // 실행 결과: BCD

// equals(문자열): 문자열의 내용이 같은지 확인
if (str.equals("ABC")) {    // 실행 결과: false
      ...
}

// toCharArray(문자열): char배열과 String클래스의 변환
char[] chArr = {'A', 'B', 'C'};
String str = new String(chArr);  // char배열 -> String
char[] tmp = str.toCharArray();  // String -> char배열

커맨드 라인을 통해 입력받기

  • 입력될 값에 공백이 있는 경우 큰따옴표(")로 감싸주어야 한다.
  • 숫자를 입력해도 문자열로 처리된다.
    • 문자열을 숫자로 바꾸기 위한 방법
      int num = Integer.parseInt("123");   // 변수 num에 숫자 123이 저장된다.

입력받은 데이터 적절하게 변환하기

// 사칙연산 계산기
public class ArrayEx17 {
    public static void main(String[] args) {
        
        if (args.length != 3) {
            System.out.println("입력 개수 초과입니다");
            System.exit(0);
        }
        
        int num1 = Integer.parseInt(args[0]);  // 첫 번째 숫자: 문자열 -> 숫자
        char op = args[1].charAt[0];    // 연산자: 문자열 -> 문자(char)
        int num2 = Integer.parseInt(args[2]);  // 두 번째 숫자: 문자열 -> 숫자
        
        int result = 0;
        
        switch(op) { 
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case 'x':
                result = num1 * num2;
                break;
            case '/':
                result = num1 / num2;
                break;
            default:
                System.out.println("지원되지 않는 연산입니다.");
        }
        System.out.println("결과:" + result);
    }
}
profile
🌱 주니어 백엔드 개발자입니당

0개의 댓글