No. 01

 

 

문자열(String)


자바에서 문자를 다루는 기본형인 char로는 문자열을 다루기 힘들다. 그래서 자바에서는 문자열을 다룰 수 있는 String클래스를 제공한다.

String은 참조형 데이터 타입이다. 


참조형 변수를 선언하려면 객체를 생성하는 연산자 new를 사용해야한다.

String a = new String(); // String 클래스 타입의 참조변수 a 선언


모든 참조형의 위와 같은 형태로 선언해야 사용할 수 있다.

그러나 String은 자바에서 매우 많이 쓰이므로 기본형처럼 사용할 수 있도록 해두었다.


예) "Hello, World" 라는 문자열을 저장하는 String 변수를 만들어 보자.

String a = new String("Hello, World.");

String a = "Hello, world."; // 기본형 처럼 사용가능

위의 예는 표현방법은 다르지만 같다고 할 수 있다. 문자열에 한해서는 String을 기본형처럼 사용 가능하다.


※ 문자열을 사용할 때는 큰따옴표(")로 반드시 감싸줘야 한다.




No. 02

 

 

String의 주요 메서드(기능)


우선 메서드란 간단히 설명하면 어떤 기능을하는 하는 것이라고 이해하고 있으면 될 것 같다.

String의 기본적인 몇 가지 기능만 배워보고 자세한 것은 추후에 자세히 살펴볼 것이다. 지금은 자세히 이해하기 보다는 이렇게 사용하면 이런 결과를 얻을 수 있구나 정도로만 알고있자.


메서드

설명

int length()

 문자열의 길이를 반환한다.

char charAt(int index)

 문자열에서 해당 위치(index)에 있는 문자를 반환한다.

int indexOf(String str)

 문자열에서 특정 문자가 시작되는 위치(index)를 반환한다. 

boolean equals(String str) 

 두 개의 문자열이 동일한지 확인한다. 결과가 같으면 true, 다르면 false


메서드를 사용하기 위해서는 모두 String 변수명 다음에 '.'을 붙여서 메서드 이름으로 사용하면 된다.



 length

문자열의 길이를 반환하는 메서드로 결과는 정수형인 int이다.

String 변수명.length(); 

예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class StringMethod {
 
    public static void main(String[] args) {
        
        String a = "Hello, World.";
        int length//길이를 저장하기 위한 정수형 변수
        
        length = a.length(); //a에 저장되어 있는 문자열 길이를 정수형 변수 length에 저장
        
        System.out.println("길이:"+length); //화면에 결과 출력
 
    }//main
 
}//class
                                                                         Colored By Color Scripter


실행 결과

길이:13


메서드 length와 int형 변수명인 length는 다르다 착각하지 않도록 한다. 변수명을 length로 한 것 뿐이다.

a.length() 의 결과는 int형으로 int형에만 저장할 수 있다.

문자열의 길이는 빈공간인 띄어쓰기 까지 세기 때문에 13이라는 숫자가 결과로 반환되었다.



▣ charAt

문자열에서 해당 위치(index)에 있는 문자열을 반환하는 메서드로 결과는 문자형인 char이다.

주의) 자바는 숫자를 1이 아닌 0부터 센다. 예를 들어 8번째는 index로 7이다.

String 변수명.charAt(index);

◈ 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class StringMethod {
 
    public static void main(String[] args) {
        
        String a = "Hello, World.";
        char character; //문자를 저장하기 위한 문자형 변수
        
        character = a.charAt(7); //a에 저장되어 있는 문자열중 8번째 문자를 character에 저장 
        
        System.out.println("8번째 문자:"+character); //화면에 결과 출력
 
    }//main
 
}//class
                                                                              Colored By Color Scripter 


실행 결과

8번째 문자:W


a.charAt()의 결과는 char형으로 char형에만 저장할 수 있다.

index로 7이기 때문에 8번째 문자인 'W'가 결과로 반환되었다.



▣ indexOf

문자열에서 특정 문자가 시작되는 위치(index)를 반환하는 메서드로 결과는 정수형인 int이다.

String 변수명.indexOf(문자열);

◈ 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class StringMethod {
 
    public static void main(String[] args) {
        
        String a = "Hello, World.";
        int index1; //index를 저장하기 위한 정수형 변수
        int index2; //index를 저장하기 위한 정수형 변수
        
        index1 = a.indexOf("W"); //a에 저장되어 있는 문자열중 "W"문자의 시작 index를 저장
        index2 = a.indexOf("llo"); //a에 저장되어 있는 문자열중 "llo"문자열의 시작 index를 저장
        
        System.out.println("\"w\"의 시작 index:"+index1); //화면에 결과 출력
        System.out.println("\"llo\"의 시작 index:"+index2); //화면에 결과 출력
 
    }//main
 
}//class
                                                                                Colored By Color Scripter


실행 결과

"W"의 시작 index:7

"llo"의 시작 index:2


비교한 문자열의 시작 index를 결과로 볼 수 있다.



▣ equals

두 개의 문자열이 동일한지 확인하는 메서드로 boolean으로 결과가 같으면 true, 다르면 false

String 변수명.equals(문자열);

◈ 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class StringMethod {
 
    public static void main(String[] args) {
        
        String a = "Hello, World.";
        boolean result1; //index를 저장하기 위한 정수형 변수
        boolean result2; //index를 저장하기 위한 정수형 변수
        
        result1 = a.equals("World"); //a에 저장되어 있는 문자열이 "World"와 같은지 판단하여 결과 저장
        result2 = a.equals("Hello, World."); //a에 저장되어 있는 문자열이 "Hello, World."와 같은지 판단하여 결과 저장
        
        System.out.println("\"Wrold\"와 같은가? "+result1); //화면에 결과 출력
        System.out.println("\"Hello, World.\"와 같은가? "+result2); //화면에 결과 출력
 
    }//main
 
}//class
                                                                                                          Colored By Color Scripter


실행 결과

"World"와 같은가? false

"Hello, World."와 같은가? true


비교하는 문자열은 완전히 일치해야만 true이다. '.'하나만 달라도 결과는 false이다.




'JAVA' 카테고리의 다른 글

[Java 10] 자바의 출력문(println, printf)  (2) 2017.11.19
[Java 09] 형변환(casting)  (0) 2017.11.19
[Java 07] 문자형 - char  (0) 2017.11.18
[Java 06] 데이터 타입  (1) 2017.11.15
[Java 05] 변수와 식별자  (1) 2017.11.13

+ Recent posts