English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
다음 예제에서는 문자열을 상수에 할당합니다:
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, 문자열은 基础教程网!()입니다
아래 표는 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) 지정된 타입 파라미터의 문자열 표현형을 반환합니다 |