繁体   English   中英

Scala:删除最后一个字符

[英]Scala: Remove the last occurrence of a character

我试图删除字符串中最后一个字符。 我可以得到它的index

str.lastIndexOf(',')

我已经尝试在字符串上使用splitreplace函数。

你可以使用patch

scala> val s = "s;dfkj;w;erw"
s: String = s;dfkj;w;erw

scala> s.patch(s.lastIndexOf(';'), "", 1)
res6: String = s;dfkj;werw

您可以尝试以下方法:

val input = "The quick brown fox jumps over the lazy dog"
val lastIndexOfU = input.lastIndexOf("u")
val splits = input.splitAt(lastIndexOfU)
val inputWithoutLastU = splits._1 + splits._2.drop(1) // "The quick brown fox jmps over the lazy dog"
scala> def removeLast(x: Char, xs: String): String = {
     |   
     |   val accumulator: (Option[Char], String) = (None, "")
     |   
     |   val (_, applied) =  xs.foldRight(accumulator){(e: Char, acc: (Option[Char], String)) =>
     |       val (alreadyReplaced, runningAcc) = acc
     |       alreadyReplaced match {
     |            case some @ Some(_) => (some, e + runningAcc)
     |            case None           => if (e == x) (Some(e), runningAcc) else (None, e + runningAcc)
     |         }
     |   }
     | 
     |   applied
     | }
removeLast: (x: Char, xs: String)String

scala> removeLast('f', "foobarf")
res7: String = foobar

scala> removeLast('f', "foobarfff")
res8: String = foobarff

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM