JAVA String




자바 문자열은 문자열에서 수행될 수 있는 많은 개념을 제공합니다. 

( compare, concat, equals, split, length, replace, compareTo, intern, substring 등등 같은 )

자바에서 문자열은 char의 값을 순서(Sequence)대로 나타내는 기본 객체 입니다.


문자들의 배열은 자바스트링처럼 작업합니다. 

예를 들면, 


char[] ch ={'j','a','v','a','t','p','o','i','n','t'}; String s = new String(ch);



이것과 동일하게



String s = "javatpoint";



java.lang.String 클래스는 Serializable, Comparable, CharSequence 인터페이스를 실행합니다.

java String은 불변입니다. 즉, 바꿀 수 없습니다. 하지만 새로운 인스턴스(Instance)는 만들 수 있습니다.

불변인 java String을 가변성 클래스로 만들기 위해, StringBuffer 와 StringBuilder 클래스를 사용할 수 있습니다.


우리는 차후에 변할 수 없는 string에 대해 토론할 수 있을 겁니다.  

일단 지금 첫 번째로 이해해야 하는 것은 자바에서 문자열이 무엇이고, 어떻게 String 객체를 만드는 가 입니다. 







자바에서 문자열이란 무엇인가?


일반적으로, String은 문자들의 배열(sequence)입니다. 하지만 자바에서 String은 문자들의 배열을 나타내는 객체입니다. String 클래스는 String 객체를 만드는데 이용됩니다.  



어떻게 문자열 객체를 만드는 가?


String 객체를 만드는 2가지 방법이 있습니다.

1. String 문자열로 

2. 새로운 키워드로







1) String Literal


자바 String 문자열는 2가지 따옴표를 사용하는 것에 의해 만들어집니다.

자 ! 예를 들면



String s = "welcome";



언제든지 String 문자열을 만들면, JVM(java virtual machine)은 첫 번째 문자열 상수 저장소(Constant pool)을 확인합니다. 

만약 특정 문자열이 이미 저장소 안에 존재한다면, 이미 존재한 인스턴스(Instance) 참조한 값을 반환합다.

만약 특정 문자열이 저장소에 존재하지 않는다면, 새로운 문자열 상수가 만들어지고, 저장소에 배치됩니다.


예를 들면


String s1 = "Welcome";
String s2 = "Welcome";    // 새로운 인스턴스(instance)가 생성되지 않음


위의 예에서 하나의 객체가 만들어집니다.

첫 번째는 JVM이 문자열 상수 저장소에서 "Welcome" 값을 가진 어떤 String 객체도 찾을 수 없을 겁니다.

그렇기 때문에 새로운 객체가 만들어지게 됩니다. 

이후 이제 풀에서 "welcome"값을 가진 스트링을 찾을 수 있습니다. 

이것은 새로운 객체를 만들지 않을 것이고, 같은 인스턴스에 대한 참조는 반환 될 것입니다.


Note : String 객체는 String 로 알려진 특별한 메모리 구역에 저장됩니다.





 


왜 자바는 String 개념을 사용하는 가?


자바 메모리를 더 효율적으로 만들기 위하여 ( 만약 이 이미 자바 수 풀에 존재 한다면, 새로운 객체가 만들어지지 않기 때문입니다. )






2) by new Keyword



String s = new String("Welcome");   // 2개의 객체와 하나의 레퍼런스 변수를 만든다.


이런 경우에, JVM은 힙 메모리(Pool 아님, normal heap memory)에 새로운 String 객체를 만들 수 있고,  문자 "Welcome" 은 String 수 풀에 배치될 수 있습니다. 변수는 힙 속에(pool 아님) 객체를 나타낼 수 있습니다.



자바 String 예시


public class StringExample {
      public static void main(String args []) {
           String S1 = "Java";     //  자바 문자열을 String 으로 만드는 것
            
           char ch [] = {'s','t','r','i','n','g','s'};
           String s2 = new String(ch);     // char 배열을 String으로 전환하는 것

           String s3 = new String("example");    //  새로운 키워드로 자바 문자열을 만드는 것

           System.out.println(s1);

           System.out.println(s2);

           System.out.println(s3);
 
      }
}




자바 String 클래스 메소드


java.lang.string 클래스는 char 배열 값에서 많은 작업을 수행하는데 유용한 메소드를 제공합니다. 





No.

Method

Description

1

char charAt (int index)

특정한 인덱스에 대한 char 값을 반환한다.

2

int length()

문자열 길이를 반환한다.

3

static String format (String format, Object... args)

초기화된 문자열을 반환한다.

4

static String format (Locale l, String format, Object... args)

지정된 지리적 지역 서식으로 문자열을 반환한다.

5

String substring (int beginIndex)

인덱스를 시작으로 주어진 부스트링을 반환한다.

6

String substring (int beginIndex, int endIndex)

주어진 인덱스의 시작과 끝에 대한 일부 문자열을 반환한다.

7

boolean contains (CharSequence s)

값의 순서를 확인하고 일치하면 참이나 일치하지 않으면 거짓을 반환한다.

8

static String join (CharSequence delimiter, CharSequence... elements)

합쳐진 문자열을 반환한다.

9

static String join (CharSequence delimiter, Iterable<? extends CharSequence> elements)

합쳐진 문자열을 반환한다.

10

boolean equals (Object another)

객체의 문자열이 같음을 확인한다.

11

boolean isEmpty ()

문자열이 비어있는 경우를 확인한다.

12

String concat (String str)

지정된 문자열을 연결시킨다.

13

String replace (char old, char new)

지정된 char 값의 모든 발생을 대체한다.

14

String replace (CharSequence old, CharSequence new)

지정된 Char시퀀스의 모든 발생을 대체한다.

15

String trim()

선행 및 후행 공백을 생략한 것을 잘라낸 문자열을 반환한다.

16

String split (String regex)

나누어진 문자열과 일치하는 정규표현식을 반환한다.

17

String split (String regex, int limit)

나누어진 문자열과 일치하는 정규표현식과 한계값(limit)를 반환한다.

18

String intern ()

내부 문자열을 반환한다.

19

int indexOf (int ch)

지정된 char 값 위치(index)를 반환한다.

20

int indexOf (int ch, int fromIndex)

주어진 인덱스와 시작하는 지정된 char 값 위치(index)를 반환한다.

21

int indexOf (String substring)

지정된 문자열의 위치(index)를 반환한다.

22

int indexOf (String substring, int fromIndex)

주어진 위치와 시작하는 지정된 부스트링 위치를 반환한다.

23

String toLowerCase ()

문자열을 소문자로 반환한다.

24

String toLowerCase (Locale l)

지정된 지리적 지역 설정을 사용하여 문자열을 소문자로 반환한다.

25

String toUpperCase ()

문자열을 대문자 반환한다.

26

String toUpperCase (Locale l)

지정된 지리적 지역 설정을 사용하여 문자열을 대문자로 반환한다.




 








영어원문내용출처 : http://www.javatpoint.com

번역,의역 및 작성 : 초코토끼

검수 : 개발토끼

오역 및 오타의 지적은 겸손히 받겠습니다.



+ Recent posts