删除多行字符串Scala中的特殊字符

奇克德里安

有没有办法\n, \b, \t, \f, \r从Scala的多行字符串中删除特殊字符()?

对于正常的字符串

val someText = "some\nText\t"
someText.filter(_ >= ' ')       // returns "someText"

我如何在多行字符串中实现相同

val multLineStr = """some\nText\t"""
someText.filter(_ >= ' ')       // returns "some\nText\t"

我尝试使用正则表达式,无法从字符串中删除字符。

val regex = new Regex("\\s")
regex.replaceAllIn(multLineStr, "")   // returns "some\nText\t"
马里奥·加里奇(Mario Galic)

作为副节点,存在以下StringContext.processEscapes方法

  /** Expands standard Scala escape sequences in a string.
   *  Escape sequences are:
   *   control: `\b`, `\t`, `\n`, `\f`, `\r`
   *   escape:  `\\`, `\"`, `\'`
   *
   *  @param  str  A string that may contain escape sequences
   *  @return The string with all escape sequences expanded.
   */
  def processEscapes(str: String): String

因此

assert(StringContext.processEscapes("""some\nText\t""") == "some\nText\t")

StringContext.processEscapes("""some\nText\t""").filter(_ >= ' ')
// res1: String = someText

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章