Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how split function Kotlin working with multiple split parameter

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?

like image 511
Saranya Subramanian Avatar asked Oct 29 '25 07:10

Saranya Subramanian


1 Answers

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]
like image 176
gromyk Avatar answered Oct 30 '25 23:10

gromyk