2012-04-04 5 views
1

Ich muss eine Funktion erstellen, die eine Zeichenfolge empfängt und überprüft, ob das letzte Zeichen ein "\ n" ist oder nicht. Wenn dies der Fall ist, wird die gleiche Zeichenfolge ohne das letzte Zeichen zurückgegeben. Die Möglichkeiten, die ich mir vorstellen kann, sind nicht die geringste Effizienz. Ich brauche es, um effizient zu sein.Entfernen der abschließenden ' n' in einer Zeichenfolge in OCaml

Antwort

4

Es ist schwierig, eine präzise Antwort auf Ihre Frage zu geben, da Sie keinen Kontext angeben.

Die einfachste Lösung, die ich denken kann ist:

let check s = 
    let n = String.length s in 
    if n > 0 && s.[n-1] = '\n' then 
    String.sub s 0 (n-1) 
    else 
    s 
+1

Sie bedeuten:. Wenn n> 0 && s [n-1] = '\ n' dann –

+0

ich eine Methode geschaffen, die eine sehr lange produziert String und ich produzierten in einigen Fällen am Ende ein "\ n", das ich nicht wollte. Da ich knapp über dem Zeitplan war, hatte ich keine Zeit, es zu überdenken, also schien eine Lösung wie diese die Lösung xD zu sein. Danke, du hast mein Projekt gerettet! – EBM

+0

@MartinJambon ist richtig, ich habe vergessen, den Fall zu behandeln, wo die Größe von n 0 ist. Ich habe meine Antwort entsprechend bearbeitet. – Thomas

Verwandte Themen