Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

fatal error: Can't form a Character from an empty String

So I have function that strips off a trailing ", " (comma + space) at the end of a string and I'm getting the above error even though I'm ensuring that the string is not empty. The following code:

print("stripping trailing commas")
        for var detail in details {
            if detail.contains(",") {
print(detail)
                detail.remove(at: detail.endIndex)    // <-- Removes last space
                detail.remove(at: detail.endIndex)    // <-- Removes last comma
            }
        }

...results int the following console output:

stripping trailing commas
2016, 
fatal error: Can't form a Character from an empty String

The first instance detail.remove(at: detail.endIndex) is being highlighted by the debugger, and while I can't be sure the space is present from the console message, I'm adding ", " at the end of each entry in a list so any string that actually contains a comma should not only have characters (as the console indicates) but it should have an extra two chars at the end that need to be stripped.

Thanks in advance, for any help on what's causing the error and how to resolve?

like image 467
Mercutio Avatar asked Nov 02 '16 00:11

Mercutio


1 Answers

Try change

detail.remove(at: detail.endIndex)

to

detail.remove(at: detail.index(before: detail.endIndex))
like image 105
Joe Smith Avatar answered Oct 27 '22 11:10

Joe Smith