Not the best Java answer, but i tried to use only inline Stream.
Since the rules aren't clear regarding special characters, here are multiple solutions:
s->s.chars().boxed().sorted((a,b)->a%32-b%32).map(e->""+(char)(e*1)).reduce("",(a,b)->a+b)
returns the correct order for letters, but with special characters mixed in between:
aaddeeeghhhJkklnn.oooprtttwy
Try it online!
Another solution (98 bytes)
s->s.chars().mapToObj(e->""+(char)e).sorted((a,b)->a.compareToIgnoreCase(b)).reduce("",(a,b)->a+b)
returns the correct order for letters, with special characters separated from the letters:
.aaddeeeghhhJkklnnoooprtttwy
And a third solution (122 bytes)
s->s.chars().filter(e->e>64&e<91|e>96&e<123).boxed().sorted((a,b)->a%32-b%32).map(e->""+(char)(e*1)).reduce("",(a,b)->a+b)
returns only the letters, in correct order:
aaddeeeghhhJkklnnoooprtttwy
Spaces and symbols can be ignored or deleted
, does that mean must be ignored; or is output such as, .aaddeeeff
allowed? \$\endgroup\$