core icon indicating copy to clipboard operation
core copied to clipboard

[String] No way to access nth character of string

Open danielFHcode opened this issue 1 year ago • 2 comments

Currently, it seems there is no method to get the nth character of a string in the standard library, I'm pretty sure the only way to do so is to first convert it into a list, then into an array, then to use Array.get:

get : Int -> String -> Maybe Char
get index string = string |> String.toList |> List.toArray |> Array.get index

Which takes linier time complexity for something which should be constant. Alternatively you could do String.slice index (index+1) string but that would return a string and not a char.

Is there a reason for the lack of this seemingly basic feature? Or am I missing an existing method, in which case maybe the documentation needs to be updated to make it clearer how to do this?

danielFHcode avatar Oct 03 '24 22:10 danielFHcode

Thanks for reporting this! To set expectations:

  • Issues are reviewed in batches, so it can take some time to get a response.
  • Ask questions a community forum. You will get an answer quicker that way!
  • If you experience something similar, open a new issue. We like duplicates.

Finally, please be patient with the core team. They are trying their best with limited resources.

github-actions[bot] avatar Oct 03 '24 22:10 github-actions[bot]

https://package.elm-lang.org/packages/elm/core/latest/String#right

String.right 1 s

LupusMichaelis avatar Oct 26 '24 03:10 LupusMichaelis