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).reduce("",(a,b)->a+b)
Try it online!
returns the correct order for letters, but with special characters mixed in between:
aaddeeeghhhJkklnn.oooprtttwy
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 (119 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).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, .aaddeeeffallowed? \$\endgroup\$