【发布时间】:2019-04-16 07:14:53
【问题描述】:
我对 Java 中的编程/算法问题非常陌生,但我无法弄清楚这种排序算法。
假设我在一个数组或数组列表中有多个String 元素。
"She ate 10 eclair"
"She ate 99 donuts"
"She had 20 eclair"
"She had 10 eclair"
当我对这些字符串进行排序时,算法问题要我跳过数字并首先按字母顺序排序。像这样:
"She ate 99 donuts"
"She ate 10 eclair"
"She had 10 eclair"
"She had 20 eclair"
所以当我使用常规的Collections.sort() 或compareTo() 方法时,它会在这些字符串中包含数字。我很难从这种排序算法中构建逻辑。
我已经研究过自然排序方法,但我不确定我是否走在正确的轨道上,因为我是新手。
那么我要对每个字符进行比较并检查当前索引是否为数字吗?还是我要将每个字符转换为十六进制值并像这样比较字符串?
java 是否提供任何方法可以帮助我解决这种分离问题?
任何帮助、指导、文档、sn-p 将不胜感激。
问候。
【问题讨论】:
-
如果一个字符串中有一个数字而另一个字符串的对应位置有一个字母会怎样?
-
我会首先找到一种将字符串转换为不带数字的方法。
-
@AndyTurner 喜欢:“Er1”和“E2r”?
-
@interstellar 类似的东西,或者如果我们使用你的情况更像是“她有 20 个泡芙”和“她嚼了 99 个甜甜圈”。