2016-09-16 1 views

Antwort

2

Da der Fehler vorgeschlagen, wenn i = str.length - 1, z = str.length das ist außerhalb des Indexes. Und es gibt ein anderes Problem mit Ihrem Code, nämlich dass Sie das Zeichen aus einer Zeichenkette entfernen, während Sie es durchlaufen. Dies ist in der Regel keine gute Übung, da sich die Zeichenfolgenlänge jedes Mal ändert, wenn Sie einen Zeichen löschen, und Sie müssen dies im Auge behalten. Ein alternativer und intuitiverer Weg besteht darin, eine neue Zeichenfolge zu erstellen und nur Zeichen hinzuzufügen, die nicht in der neuen Zeichenfolge enthalten sind:

def removeDuplicate(str: String):String = { 
    var sb = "" 
    for(i <- 0 until str.length) { 
    if(! (sb contains str(i))) { 
     sb += str(i) 
    }} 
    sb 
} 

scala> removeDuplicate("abbccssds") 
res13: String = abcsd 

scala> removeDuplicate("abbeedsff") 
res14: String = abedsf 

scala> removeDuplicate("abbeedsffgg") 
res15: String = abedsfg 
Verwandte Themen