본문 바로가기

프로그래밍/Scala

Scala String 문법

 

 

프로그래머스 문제에서 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