■ はじめに
Scala の 文字列について、徐々にノウハウを書き溜めておく
目次
【1】ゼロ埋め (Zero padding) 【2】前方一致・後方一致 【3】空・空文字じゃないを判定 【4】ホワイトスペース除去 【5】文字列置換 【6】mkString
【1】ゼロ埋め (Zero padding)
【2】前方一致・後方一致
// 前方一致:startsWith val isS3 = "s3://your-bucket/bbb/abc.sql".startsWith("s3://") // 後方一致:endsWith val isSqlFile = "s3://your-bucket/bbb/abc.sql".endsWith(".sql")
参考文献
文字列が特定の文字列で始まるか・終わるかを調べる方法|Scalapedia
【3】空・空文字じゃないを判定
val isEmpty = "".isEmpty() val isNotEmpty = "".nonEmpty()
参考文献
http://www.mwsoft.jp/programming/scala/scala_string.html
【4】ホワイトスペース除去
val trimmedStr = " test ".trim // 前方除去 val trimmedStrLeading = " test ".stripLeading // 後方除去 val trimmedStrTrailing = " test ".stripTrailing
stripメソッドで文字列の前後の全角空白を除去する|Scalapedia
【5】文字列置換
* 基本的なことは、以下を参照。
replaceメソッドなど、文字列を置換する方法を紹介|Scalapedia
replace/replaceAllの注意点
* java.lang.Stringのreplace/replaceAllは、正規表現として解釈するので 正規表現に関わる文字はエスケープしないといけない
例
// var result = "Hi, ${{name}}!!".replaceAll("${{name}}", "Mike") // Error!! var result = "Hi, ${{name}}!!".replaceAll("\\$\\{\\{name\\}\\}", "Mike")
解決案
// Scala v2.8から「replaceAllLiterally」で置き換え可能 var result = "Hi, ${{name}}!!".replaceAllLiterally("${{name}}", "Mike")
http://blog.mwsoft.jp/article/45251515.html
【6】mkString
val result1 = List(1, 2, 3, 4, 5).mkString val result2 = List(1, 2, 3, 4, 5).mkString(",") val result3 = List(1, 2, 3, 4, 5).mkString("[", ",", "]")
関連記事
Scala ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/03/10/193805
Scala ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/12/184331
Scala ~ 基本編 / コレクション ~
https://dk521123.hatenablog.com/entry/2023/03/13/000345
Scala ~ ファイル名・パスの扱い ~
https://dk521123.hatenablog.com/entry/2023/03/11/000000
Scala ~ ファイルの読み書き ~
https://dk521123.hatenablog.com/entry/2023/04/07/000000