English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Scala 문자열

다음 예제에서는 문자열을 상수에 할당합니다:

object Test {
   val greeting: String = "Hello, World!"
   def main(args: Array[String]) {
      println( greeting )
   }
}

이 예제에서는 변수 greeting을 정의하고 있습니다. 이는 문자 상수로, 타입이 String (java.lang.String)입니다.

Scala에서 문자열의 타입은 실제로 Java String입니다. 그 자체는 String 클래스가 없습니다.

Scala에서 String은 불변 객체이므로, 이 객체는 수정할 수 없습니다. 이는 문자열을 수정하면 새로운 문자열 객체가 생성된다는 의미입니다.

다른 객체, 예를 들어 배열은 변경 가능한 객체입니다. 다음에 일반적으로 사용되는 java.lang.String 메서드를 소개할 것입니다.

문자열 생성

문자열 생성 예제를 보겠습니다:

var greeting = "Hello World!";
또는
var greeting:String = "Hello World!";

문자열 타입을 명시적으로 지정하지 않아도 됩니다. Scala 컴파일러는 자동으로 문자열 타입을 String으로 추론합니다.

물론 직접 String 타입으로 문자열을 선언할 수도 있습니다. 예제를 보겠습니다:

object Test {
   val greeting: String = "Hello, World!"
   def main(args: Array[String]) {
      println( greeting )
   }
}

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

$ scalac Test.scala
$ scala Test
Hello, world!

우리는 이전에 언급했듯이 String 객체는 불변입니다. 문자열을 수정할 수 있는 경우 String Builder 클래스를 사용할 수 있습니다. 예제를 보겠습니다:

object Test {
   def main(args: Array[String]) {
      val buf = new StringBuilder;
      buf += 'a'
      buf ++= "bcdef"
      println( "buf is : " + buf.toString );
   }
}

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

$ scalac Test.scala
$ scala Test
buf is : abcdef

문자열 길이

우리는 length() 메서드를 사용하여 문자열 길이를 가져올 수 있습니다:

온라인 예제

object Test {
   def main(args: Array[String]) {
      var palindrome = "ko.oldtoolbag.com";
      var len = palindrome.length();
      println( "String Length is : " + len );
   }
}

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

$ scalac Test.scala
$ scala Test
String Length is : 14

문자열 연결

String 클래스에서 concat() 메서드를 사용하여 두 문자열을 연결할 수 있습니다:

string1.concat(string2);

예제 표시:

scala> "기본 튜토리얼 웹사이트 공식 페이지: ".concat("ko.oldtoolbag.com");
res0: String = 기본 튜토리얼 웹사이트 공식 페이지: ko.oldtoolbag.com

또한 더 이상 사용할 수 있습니다. 더블 슬래시와 (+)+)를 연결하세요:

scala> "기본 튜토리얼 웹사이트 공식 페이지: " + " ko.oldtoolbag.com"
res1: String = 基础教程网官网:  ko.oldtoolbag.com

让我们看个完整示例:

object Test {
   def main(args: Array[String]) {
      var str1 ="基础教程网官网:";
      var str2 =  "ko.oldtoolbag.com";
      var str3 =  "基础教程网的 Slogan 为:";
      var str4 =  "学好基础,才能走的更远!";
      println( str1 + str2 );
      println( str3.concat(str4);
   }
}

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

$ scalac Test.scala
$ scala Test
基础教程网官网:ko.oldtoolbag.com
基础教程网的 Slogan 为:学好基础,才能走的更远!

포맷된 문자열 생성

String 클래스에서 printf() 메서드를 사용하여 문자열을 포맷하고 출력할 수 있습니다. String format() 메서드는 PrintStream 객체 대신 String 객체를 반환합니다. 아래 예제에서 printf() 메서드의 사용을 보여줍니다:

object Test {
   def main(args: Array[String]) {
      var floatVar = 12.456
      var intVar = 2000
      var stringVar = "基础教程网!"
      var fs = printf("소수점형 변수는 " +
                   "%f, 정수형 변수는 %d, 문자열은 " +
                   " %s", floatVar, intVar, stringVar)
      println(fs)
   }
}

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

$ scalac Test.scala
$ scala Test
소수점형 변수는 12.456000, 정수형 변수는 2000, 문자열은  基础教程网!()입니다

String 메서드

아래 표는 java.lang.String에서 사용할 수 있는 일반적인 메서드를 나열합니다. Scala에서 사용할 수 있습니다:

순번메서드 및 설명
1

char charAt(int index)

지정된 위치의 문자를 반환합니다

2

int compareTo(Object o)

문자열과 객체를 비교합니다

3

int compareTo(String anotherString)

두 문자열을 사전順으로 비교합니다

4

int compareToIgnoreCase(String str)

대문자와 소문자를 구분하지 않고 두 문자열을 사전順으로 비교합니다

5

String concat(String str)

지정된 문자열을 이 문자열의 끝에 연결합니다

6

boolean contentEquals(StringBuffer sb)

이 문자열과 지정된 StringBuffer을 비교합니다

7

static String copyValueOf(char[] data)

지정된 배열에서 이 문자열 시퀀스를 나타내는 String을 반환합니다

8

static String copyValueOf(char[] data, int offset, int count)

지정된 배열에서 이 문자열 시퀀스를 나타내는 String을 반환합니다

9

boolean endsWith(String suffix)

이 문자열이 지정된 접미사로 끝나는지 테스트합니다

10

boolean equals(Object anObject)

이 문자열과 지정된 객체를 비교합니다

11

boolean equalsIgnoreCase(String anotherString)

대소문자를 무시하여 이 String과 다른 String을 비교합니다

12

byte getBytes()

플랫폼의 기본 문자 집합을 사용하여 이 String을 byte 시리얼로 인코딩하고, 결과를 새 byte 배열에 저장합니다

13

byte[] getBytes(String charsetName)

지정된 문자 집합을 사용하여 이 String을 byte 시리얼로 인코딩하고, 결과를 새 byte 배열에 저장합니다

14

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

이 문자열에서 문자를 목표 문자 배열에 복사합니다

15

int hashCode()

이 문자열의 해시 코드를 반환합니다

16

int indexOf(int ch)

이 문자열에서 지정된 문자가 처음 나타나는 인덱스를 반환합니다

17

int indexOf(int ch, int fromIndex)

지정된 인덱스에서 시작하여 이 문자열에서 지정된 문자가 처음 나타나는 인덱스를 반환합니다

18

int indexOf(String str)

이 문자열에서 지정된 부분 문자열이 처음 나타나는 인덱스를 반환합니다

19

int indexOf(String str, int fromIndex)

지정된 인덱스에서 시작하여 이 문자열에서 지정된 부분 문자열이 처음 나타나는 인덱스를 반환합니다

20

String intern()

이 문자열 객체의 정규화된 표현을 반환합니다

21

int lastIndexOf(int ch)

이 문자열에서 지정된 문자가 마지막으로 나타나는 인덱스를 반환합니다

22

int lastIndexOf(int ch, int fromIndex)

지정된 문자가 이 문자열에서 마지막으로 발견된 인덱스를 반환합니다. 지정된 인덱스에서부터 반대 방향으로 검색합니다

23

int lastIndexOf(String str)

지정된 서브 문자열이 이 문자열에서 가장 오른쪽에 발견된 인덱스를 반환합니다

24

int lastIndexOf(String str, int fromIndex)

지정된 서브 문자열이 이 문자열에서 마지막으로 발견된 인덱스를 반환합니다. 지정된 인덱스에서부터 반대 방향으로 검색합니다

25

int length()

이 문자열의 길이를 반환합니다

26

boolean matches(String regex)

이 문자열이 지정된 정규 표현식과 일치하는지 알립니다

27

boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)

두 문자열의 区域이 일치하는지 테스트합니다

28

boolean regionMatches(int toffset, String other, int ooffset, int len)

두 문자열의 区域이 일치하는지 테스트합니다

29

String replace(char oldChar, char newChar)

newChar로 이 문자열에出现的 모든 oldChar를 대체하여 새로운 문자열을 반환합니다

30

String replaceAll(String regex, String replacement

지정된 대체 문자로 이 문자열에 맞는 정규 표현식의 모든 서브 문자열을 대체합니다

31

String replaceFirst(String regex, String replacement)

지정된 대체 문자로 이 문자열에 맞는 정규 표현식의 첫 번째 서브 문자열을 대체합니다

32

String[] split(String regex)

지정된 정규 표현식의 매칭으로 이 문자열을 분할합니다

33

String[] split(String regex, int limit)

지정된 정규 표현식에 맞는 매칭으로 이 문자열을 분할합니다

34

boolean startsWith(String prefix)

이 문자열이 지정된 프리퍼克斯로 시작하는지 테스트합니다

35

boolean startsWith(String prefix, int toffset)

지정된 인덱스에서 시작하는 문자열이 지정된 프리퍼كس로 시작하는지 테스트합니다。

36

CharSequence subSequence(int beginIndex, int endIndex)

이 시퀀스의 일부 시퀀스를 반환합니다

37

String substring(int beginIndex)

이 문자열의 일부 문자열을 반환합니다

38

String substring(int beginIndex, int endIndex)

이 문자열의 일부 문자열을 반환합니다

39

char[] toCharArray()

이 문자열을 새로운 문자 배열로 변환합니다

40

String toLowerCase()

이 String에 있는 모든 문자를 기본 언어 환경의 규칙에 따라 소문자로 변환합니다

41

String toLowerCase(Locale locale)

이 String에 있는 모든 문자를 주어진 Locale의 규칙에 따라 소문자로 변환합니다

42

String toString()

이 객체 자체를 반환합니다(그것이 이미 문자열입니다!)

43

String toUpperCase()

이 String에 있는 모든 문자를 기본 언어 환경의 규칙에 따라 대문자로 변환합니다

44

String toUpperCase(Locale locale)

이 String에 있는 모든 문자를 주어진 Locale의 규칙에 따라 대문자로 변환합니다

45

String trim()

지정된 문자열의 시작과 끝의 공백 문자를 제거합니다

46

static String valueOf(원시 데이터 타입 x)

지정된 타입 파라미터의 문자열 표현형을 반환합니다