스칼라 문자열


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

object Test {
   val greeting: String = "Hello,World!"

   def main(args: Array[String]) {
      println( greeting )
   }
}

위 예에서는 문자열 상수이고 유형이 String(java.lang.String)인 Greeting 변수를 정의합니다.

Scala에서 문자열 유형은 실제로 String 클래스 자체가 없는 Java String입니다.

Scala에서 String은 불변 객체이므로 객체를 수정할 수 없습니다. 즉, 문자열을 수정하면 새 문자열 개체가 생성됩니다.

그러나 배열과 같은 다른 객체는 변경 가능한 객체입니다. 다음으로 일반적으로 사용되는 java.lang.String 메소드를 소개하겠습니다.



문자열 생성

다음과 같이 문자열 인스턴스를 생성합니다.

var greeting = "Hello World!";

或

var greeting:String = "Hello World!";

문자열 유형을 반드시 지정할 필요는 없습니다. 스칼라 컴파일러는 자동으로 문자열 유형이 문자열이라고 추론하기 때문입니다.

물론 다음 예와 같이 문자열을 문자열 유형으로 직접 선언할 수도 있습니다.

object Test {
   val greeting: String = "Hello, World!"

   def main(args: Array[String]) {
      println( greeting )
   }
}

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

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

앞서 언급했듯이 문자열 개체는 변경할 수 없습니다. 수정 가능한 문자열을 생성해야 하는 경우 다음 예와 같이 문자열 빌더 클래스를 사용할 수 있습니다.

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 = "www.php.cn";
      var len = palindrome.length();
      println( "String Length is : " + len );
   }
}

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

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

String 연결

Concat() 메서드는 String 클래스에서 두 개를 연결하는 데 사용됩니다. 문자열:

string1.concat(string2);

시연 예:

scala> "php中文网官网: ".concat("www.php.cn");
res0: String = php中文网官网: www.php.cn

마찬가지로 더하기 기호(+)를 사용하여 연결할 수도 있습니다.

scala> "php中文网官网: " + " www.php.cn"
res1: String = php中文网官网:  www.php.cn

전체 예를 살펴보겠습니다.

object Test {
   def main(args: Array[String]) {
      var str1 = "php中文网官网:";
      var str2 =  "www.php.cn";
      var str3 =  "php中文网的 Slogan 为:";
      var str4 =  " php中文网";
      println( str1 + str2 );
      println( str3.concat(str4) );
   }
}

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

$ scalac Test.scala
$ scala Test
php中文网官网:www.php.cn
php中文网的 Slogan 为: php中文网

형식 지정된 문자열 생성

String 클래스에서는 printf() 메서드를 사용하여 문자열 형식을 지정할 수 있습니다. String format() 메서드는 PrintStream 객체 대신 String 객체를 반환할 수 있습니다. 다음 예에서는 printf() 메서드의 사용을 보여줍니다.

object Test {
   def main(args: Array[String]) {
      var floatVar = 12.456
      var intVar = 2000
      var stringVar = "php中文网!"
      var fs = printf("浮点型变量为 " +
                   "%f, 整型变量为 %d, 字符串为 " +
                   " %s", floatVar, intVar, stringVar)
      println(fs)
   }
}

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

$ scalac Test.scala
$ scala Test
浮点型变量为 12.456000, 整型变量为 2000, 字符串为  php中文网!()

문자열 메서드

다음 표 목록 java .lang.String에서 일반적으로 사용되는 메소드는 Scala에서 사용할 수 있습니다:

<🎜에서 이 문자열에 지정된 문자가 마지막으로 나타나는 인덱스를 반환합니다. >2324주어진 정규식과 일치하는 이 문자열의 모든 하위 문자열을 지정된 대체 문자열로 바꿉니다이 문자열을 주어진 일반 문자열과 일치하는 대체 문자열로 바꿉니다. 표현식 의 첫 번째 하위 문자열 주어진 정규식과 일치하는 항목을 기준으로 이 문자열을 분할합니다. 주어진 정규 표현식과 일치하는 항목에 따라 이 문자열을 분할합니다이 문자열이 지정된 접두사로 시작하는지 테스트합니다.지정된 인덱스에서 시작하는 이 문자열의 하위 문자열이 지정된 접두사로 시작하는지 테스트합니다. 새 문자 반환 이 시퀀스의 하위 시퀀스인 시퀀스 이 문자열의 하위 문자열인 새 문자열을 반환합니다이 문자열의 하위 문자열인 새 문자열을 반환합니다이 문자열을 새 문자 배열로 변환기본 로케일 규칙을 사용하여 이 문자열의 모든 문자를 소문자로 변환주어진 Locale의 규칙을 사용하여 이 문자열의 모든 요소에 문자는 소문자로 변환됩니다.
일련 번호메소드 및 설명
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)

지정된 항목으로 돌아가기 배열 문자열

8

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

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

9

boolean endWith(String suffix)

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

10

boolean equals(Object anObject )

이 문자열을 지정된 객체와 비교

11

boolean equalsIgnoreCase(String anotherString )

대소문자에 관계없이 이 문자열을 다른 문자열과 비교

12

byte getBytes ()

플랫폼의 기본 문자 집합을 사용하여 이 문자열을 바이트 시퀀스로 인코딩하고 결과를 새 바이트 배열에 저장합니다

13

byte[] getBytes(String charsetName

지정된 문자 세트를 사용하여 이 문자열을 바이트 시퀀스로 인코딩하고 결과를 새 바이트 배열에 저장합니다.

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)

지정된 인덱스에서 역방향 검색 시작

int lastIndexOf(String str)

이 문자열에서 지정된 하위 문자열이 가장 오른쪽에 나타나는 인덱스를 반환합니다.

int lastIndexOf(String str, int fromIndex)

이 문자열에서 지정된 하위 문자열이 마지막으로 나타나는 인덱스를 반환하고 지정된 인덱스에서 역방향 검색을 시작합니다

25

int length()

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

26

boolean matchs(String regex)

이 문자열이 주어진 정규 표현식과 일치하는지 여부를 알려줍니다.

27

boolean RegionMatches(booleanignoreCase, int toffset, String other, int ooffset, int len)

두 문자열 영역이 동일한지 테스트

28

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

두 문자열 테스트 면적이 같은가요?

29

String replacement(char oldChar, char newChar)

Return 치환하여 얻은 새로운 문자열 이 문자열에서 oldChar의 모든 항목을 newChar로 바꿉니다. String replacementAll(String regex, String replacement

31

String replacementFirst(String regex, String replacement)

32

String[] Split(String regex)

33

String[] Split(String regex , intlimit)

34

boolean startWith( 문자열 접두사)

35

부울 startWith(String prefix, int toffset)

36

CharSequence subSequence(int BeginIndex, int endIndex)

37

String substring(int startIndex)

38

String substring(int startIndex, int endIndex)

39

char[ ] toCharArray()

40

String toLowerCase()

41

String toLowerCase(Locale locale)

42

String toString()

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

43

String toUpperCase()

기본 로케일 규칙을 사용하여 모두 문자열의 문자는 대문자로 변환됩니다

44

String toUpperCase(Locale locale)

주어진 로캘의 규칙을 사용하여 이 문자열의 모든 문자를 대문자로 변환합니다.

45

String Trim( )

지정된 로캘의 규칙을 사용하여 이 문자열의 모든 문자를 대문자로 변환합니다.

46

정적 String valueOf(기본 데이터 유형 x)

지정된 유형 매개변수의 문자열 표현을 반환합니다