Use the limit parameter with -1:
scala> "a:b::".split(":", -1)
res1: Array[String] = Array(a, b, "", "")
There is a longer overload with the signature split(regex: String, limit: Int), but you're using the overload with only the regex argument, which calls the former overload with a limit of zero. When the limit is zero, empty strings are discarded from the end of the array.
From the javadoc:
If n [limit] is zero then the pattern will be applied as many times as possible, the array can have any length, and trailing empty strings will be discarded.