프로그래머스 문제에서 369 게임 문제를 풀다가 알게된 사실
정수 -> 문자열 -> 정수로 바꿔서 풀고 있었는데
char을 int로 변경하는 경우 ascii코드의 형식으로 반환된다
따라서 0의 ascii 코드 값에 해당하는 48만큼을 빼주어야 우리가 원하는 값을 얻는다.
또 문자열 내부에 변수를 삽입하는 경우가 생긴다. (파이썬의 f-string과 비슷)
// 변수 생성
val a = "My"
val b = "Name is"
val c = "unho"
// 문자열 내부에 변수 삽입
val result = s"${a} ${b} ${c}"
//문자열 출력
print(result)
// My Name is unho
그 외 자주 쓰이는 String Method
These are the most important String methods (here, S and T are strings):
- S.length is the length of the string in characters;
- S.substring(i) returns the part of the string starting at index i.
- S.substring(i,j) returns the part of the string starting at index i and going up to index j-1. You can write S.slice(i,j) instead.
- S.contains(T) returns true if T is a substring of S;
- S.indexOf(T) returns the index of the first occurrence of the substring T in S (or -1);
- S.indexOf(T, i) returns the index of the first occurrence after index i of the substring T in S (or -1);
- S.toLowerCase and S.toUpperCase return a copy of the string with all characters converted to lower or upper case;
- S.capitalize returns a new string with the first letter only converted to upper case;
- S.reverse returns the string backwards;
- S.isEmpty is the same as S.length == 0;
- S.nonEmpty is the same as S.length != 0;
- S.startsWith(T) returns true if S starts with T;
- S.endsWith(T) returns true if S ends with T;
- S.replace(c1, c2) returns a new string with all characters c1 replaced by c2;
- S.replace(T1, T2) returns a new string with all occurrences of the substring T1 replaced by T2;
- S.trim returns a copy of the string with white space at both ends removed;
- S.format(arguments) returns a string where the percent-placeholders in S have been replaced by the arguments (see example below);
- S.split(T) splits the string into pieces and returns an array with the pieces. T is a regular expression (not explained here). To split around white space, use S.split("
s+").
코드 예시를 살펴보자.
val S = "CS109 is nice"
//S: java.lang.String = CS109 is nice
S.contains("ice")
//res0: Boolean = true
S.indexOf("ice")
//res1: Int = 10
//"i"가 위치한 인덱스라 리턴된다.
S.indexOf("rain")
//res2: Int = -1
//"rain"은 존재하지 않아서 -1이 리턴된다.
S.replace('i', '#')
//res4: java.lang.String = CS109 #s n#ce
S.split("\\s+")
//res5: Array[java.lang.String] = Array(CS109, is, nice)
S.toLowerCase
//res6: java.lang.String = cs109 is nice
S.toUpperCase
//res7: java.lang.String = CS109 IS NICE
S.substring(5)
//res8: java.lang.String = " is nice"
S.substring(5,8)
//res9: java.lang.String = " is"
S.reverse
//res10: String = ecin si 901SC
val F = "%5s %3d %-3d %g"
//F: java.lang.String = %5s %3d %-3d %g
F.format("cs206", 12, 3, math.Pi)
//res11: String = cs206 12 3 3.14159
s.replace(letter,"")
을 이용해서 특정 문자를 제거할 수 있다.
'프로그래밍 > Scala' 카테고리의 다른 글
백준 2738번 행렬의 덧셈 (0) | 2022.11.23 |
---|---|
Scala Array 문법 (0) | 2022.11.22 |
1103 Mixin, Stacking with Traits (0) | 2022.11.03 |
1101 Inheritance vs. Composition (0) | 2022.11.01 |
Structure Type (0) | 2022.10.21 |