I am new to Kotlin . I want to know how the split function is working .Please see the below example.
Example 1:
var str = "Kotlin TutorialsEPTutorialaSEpKartSEpExamples"
var delimiter1 = "SEP"
var delimiter2 = "ASEP"
var delimiter3 = "ASEPP"
val parts = str.split(delimiter1, ignoreCase = true)
print(parts)
Output is (Working - Understood-All Based on "SEP" string ll be splitted ):
 [Kotlin Tutorial, Tutoriala, Kart, Examples]
Example 2:
var str = "Kotlin TutorialsEPTutorialaSEpKartSEpExamples"
var delimiter1 = "SEP"
var delimiter2 = "ASEP"
var delimiter3 = "ASEPP"
val parts = str.split(delimiter1,delimiter2,ignoreCase = true)
print(parts)
Output is (Working - Understood-All Based on "SEP"and "ASEP" string ll be splitted but I don't know how it is working.After splitting with "SEP" only TutorialA ll come .but how the aSEP is splitting? ):
  [Kotlin Tutorial, Tutorial, Kart, Examples]
Example 3:
var str = "Kotlin TutorialsEPTutorialaSEpKartSEpASEPPExamples"
var delimiter1 = "SEP"
var delimiter2 = "ASEP"
var delimiter3 = "ASEPP"
val parts = str.split(delimiter1,delimiter2,delimiter3,ignoreCase = true)
Output: Based on the Second example, ASEPP should be split right ?
[Kotlin Tutorial, Tutorial, Kart, , PExamples]
See P is coming now. Please explain the logic?
No, your problem is that CharSequence.split(...) "takes" all your delimeters and using loop just goes through your string and removes characters that are equal delimeter in current iteration(vararg delimeter). If you'd write delimeter3 before delimeter2, then you'd get right(in your opinion) result
val str = "Kotlin TutorialsEPTutorialaSEpKartSEpASEPPExamples"
val delimiter1 = "SEP"
val delimiter2 = "ASEP"
val delimiter3 = "ASEPP"
val parts = str.split(delimiter1, delimiter3, delimiter2, ignoreCase = true)
println(parts)
Output
[Kotlin Tutorial, Tutorial, Kart, , Examples]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With