1
A
回答
1
@BenReich使用patch
可能是最習慣和最整潔的方法;另一種方式包括例如使用take
和drop
在字符串的Char
序列,這樣,
val s = ('a' to 'e').mkString
s: String = abcde
scala> s.take(2) ++ s.drop(3) // remove third char
res0: String = abde
scala> s.take(2) ++ "CCC" ++ s.drop(3) // replace third char with a string
res1: String = abCCCde
scala> s.take(2) ++ s.drop(4) // remove from third to fourth chars
res2: String = abe
注意,這不是大串的最有效的方法。
1
您可以使用「子字符串」將字符串分解爲兩部分,然後在添加所需字符之後,可以再次合併它們。
3
這其中大部分可以用patch
方法來完成:
val x = "abcdefgh"
//Replace 1 element starting at the 4th position with "" (thereby eliminating the fourth element)
x.patch(4, "", 1) //"abcdfgh"
//Replace 0 elements starting at the 4th position with "A" (thereby adding an element after the fourth element)
x.patch(4, "A", 0) //"abcdAefgh"
的方法定義上GenSeqLike
,這是相當高的了類型層次,這樣你就可以在其他類型使用patch
比String
:
List(1, 2, 3, 4, 5, 6, 7).patch(4, Seq(), 1) //List(1, 2, 3, 4, 6, 7)
閱讀文檔patch
here。
您也可以豐富GenSeqLike
使這種類型的方法更容易availble的:
import scala.collection.GenSeqLike
implicit class RichGenSeqLike[T, Repr <% GenSeqLike[T, Repr]](val seq: Repr) {
import scala.collection.generic.CanBuildFrom
def dropAt[That](n: Int)(implicit bf: CanBuildFrom[Repr, T, That]): That = seq.patch(n, Seq.empty[T], 1)
def addAt[That](n: Int)(ts: T*)(implicit bf: CanBuildFrom[Repr, T, That]): That = seq.patch(n, ts, 0)
}
然後你就可以這樣做:
List(1, 2, 3).dropAt(1) //List(1, 3)
"abc".dropAt(1) //"ac"
List(1, 2, 3).addAt(1)(4) //List(1, 4, 2, 3)
List(1, 2, 3).addAt(1)(4, 5, 6) //List(1, 4, 5, 6, 2, 3)
"abc".addAt(1)('A') //aAbc
"abc".addAt(1)('A', 'B') //aABbc
"abc".addAt(1)("ABC":_*) //aABCbc
當然,如果你是在加入給你的標準您可能會考慮進行一些邊界檢查。
相關問題
- 1. 如何在鏈接中添加HTML字符串中的包裝特定元素
- 2. 在NSArray中添加字符串元素
- 3. 如何在讀取特定字符串後添加字符串?
- 4. Python從字符串中添加元素
- 5. 在特定字符後添加到數組中的元素javascript
- 6. 當URL包含特定字符串時,如何添加/刪除類到元素?
- 7. 如何在文件中的特定字符串附近添加字符串?
- 8. 添加字符串值在特定點
- 9. C#如何將數組中的字符串元素添加到字符串
- 10. 如何比較ArrayList中的元素與特定的字符串?
- 11. 如何從字符串中提取特定元素?
- 12. 如何從字符串中選擇特定元素?
- 13. 如何從字符串中獲取特定元素
- 14. 如何獲取字符串中特定元素的地址
- 15. 添加數組元素到字符串
- 16. 在Java中的字符串中的特定位置添加特定字符
- 17. 如何將字符串中的SVG元素添加到DOM
- 18. 如何在Android上向字符串數組添加元素
- 19. 如何將特定的字符串添加到SQLite中的現有字符串?
- 20. 如何將字符添加到bash中特定字符之間的字符串?
- 21. 如何替換HTML文檔或特定元素中的特定字符串?
- 22. 如何刪除特定元素中的特定字符
- 23. SQL Server - 如何在字符串中添加一個或多個特定字符?
- 24. 如何在字符串中的特定字符之後添加空格?
- 25. 替換特殊字符?在與列表中的特定元素的字符串
- 26. 如何在Lua的特定位置添加子字符串
- 27. 如何在預定義的字符串中添加字符?
- 28. 如何拆分字符串並提取特定元素?
- 29. 如何得到一個字符串的特定元素的Java
- 30. 斯普利特和特定字符添加到C#字符串
告訴我們你試過或研究過什麼? – Muds