본문 바로가기
컴퓨터 사이언스/TIL 정리

Java

by 메리뉴데이 2022. 6. 30.

switch 문

 

값에 따라 여러 방향으로 분기하는 경우,

if 문보다  switch 문을 사용하면 가독성이 높은 좋은 코드를 작성할 수 있다.

이 때, 실행문은 실행문장은 { }로 둘러싸지 않는다.

switch 문은 식의 결과 값을 case 문의 값과 비교한다.

case 문의 값은 변수나 식은 사용할 수 없고,

                정수 리터럴, 문자 리터럴, 문자열 리터럴만 허용한다.

 

 

switch (식) {

    case 값1:

        실행문 1;

         break;

    case 값2:

        실행문 2;

         break;

    ...

    case 값m:

        실행문 m;

         break;

    default:  

        실행 문장 n;

}

 

 

default 문 : 어떤 case 문으로도 분기하지 못하는 경우 default의 실행문을 실행한다.

                   생략 가능하다.

 

 

 

 

Wrapper 클래스 개념

이름이 Wrapper인 클래스는 존재하지 않는다.

기본 타입에 해당되는 값을 객체로 다룰 수 있게 하는 클래스이다.

필요한 이유: 자바는 객체 지향 언어이므로 객체를 대상으로 처리하는 경우가 많고,

                     JDK의 어떤 클래스는 기본 타입의 데이터는 사용할 수 없고, 객체만 다룬다.

=> 기본 타입의 값을 객체로 만들어 사용할 수 있도록 Wrapper 클래스를 제공(java.lang 패키지에 있음)

 

Wrapper 클래스의 객체 생성

기본 타입의 값을 인자로 하여 정적 메소드인 valueOf()를 호출하여 생성한다.

Integet i = Integer.valueOf(100);   
Integet i = Integer.valueOf("100");         // 정수 100의 객체화

Character a = Character.valueOf('a')    // 문자 'a'의 객체화

Double d = Double.valueOf(3.14);  
Double d = Double.valueOf("3.14");        // 실수 3.14의 객체화

Boolean b = Boolean.valueOf(true);      // 불린 값 true의 객체화

 

기본 타입에 대응하는 Wrapper 클래스

기본 타입 byte short int long char float double boolean
Wrapper 클래스 Byte Short Integer Long Character Float Double Boolean

* JDK 9부터 Wrapper 클래스의 객체를 생성할 때 생성자를 이용하는 방법을 폐기(deprecated)했다.

   대신 공간과 속도에 있어 성능이 높은 valueOf()  정적 메소드를 이용하여 생성한다.

 

 

int compareTo() : 문자열 비교

                            현재 문자열과 매개변수로 주어진 다른 문자열을 사전 순으로 비교하면서,

                            두 문자의 아스키코드값의 차이만큼을 정수로 출력한다.

                            현재 문자열이 사전에 먼저 나오면 (아스키코드값이 작으므로) 음수를,

                            현재 문자열이 사전에서 뒤에 나오면 양수를 리턴한다.

String java = "Java";
String cpp = "C++";
int res = java.compareTo(cpp);
if (res == 0)
    System.out.println("두 문자열이 같다.");
else if (res < 0)
    System.out.println(java + " < " + cpp);
else
    System.out.println(java + " > " + cpp;         // Java > C++

 

 

String concat(String str) : 문자열 연결

+ 연산을 할 때 피연산자가 객체가 있을 경우에는,

                                            객체.toString() 메소드를 호출하여 객체를 문자열로 변환하여 문자열 연결을 실행한다.

                        피연산자가 기본 타입의 값이 있는 경우에는,

                                             이 값을 문자열로 변환하여 문자열 연결을 실행한다.

                        이 외에, concat() 메소드를 이용하여 문자열을 연결할 수 있다.

"I love ".concat("Java.")        // "I love Java."

                         

 

String trim() : 공백 제거

                      문자열 앞뒤에 있는 공백 문자를 제거한 새로운 문자열을 리턴한다.

String a = "      abcd   eft    ";
String b = "      njl++ /8kl";
String c = a.trim();                     // c = "abcd   eft"
String d = b.trim();                     // d = "njl++ /8kl"

 

 

char charAt(int index) : 문자열의 문자

                                     특정 위치에 있는 문자를 리턴하여 알려준다.

String a = "class";
char c = a.charAt(2);   // c = 'a'

 활용해 특정 문자가 몇 개 있는지 알 수 있다.
int count =o;
String a = "banana";
for(int i=0; i<a.length(); i++) {
    if(a.charAt(i) == 'a')
        count++;
}
System.out.println(count);      // 2 

 

 

 boolean contains() : 문자열 검색        

String s = "Java"
    if (s.contains("Java")) {
        System.out.println("포함되어 있는 문자열입니다.")
    }
    else {
        System.out.println("포함되어 있지 않은 문자열입니다.")      // "포함되어 있는 문자열입니다."
    }                                                                                  

 

 

 

 

 

working on...

 

 

  

'컴퓨터 사이언스 > TIL 정리' 카테고리의 다른 글

나의 첫 Hexo Blog !  (0) 2022.07.01
MGS day 04  (0) 2022.06.30
MGS day 03  (0) 2022.06.30
MGS Day 02  (0) 2022.06.28
MGS Day 01  (0) 2022.06.28