【发布时间】:2015-06-08 04:32:11
【问题描述】:
我在课堂上有一个练习,你从用户那里取名字并按字母顺序输出。我不允许使用Array.sort() 或compareTo()。我似乎已经让它大部分工作了......除了当我输入像a aaa aa这样的东西时,它会按以下顺序输出:
aaa
aa
a
我真的希望能够按这个顺序输出它:
a
aa
aaa
这是我目前所拥有的:
public static void main(String args[]) throws IOException {
BufferedReader key =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("Alphabetizing names\n");
System.out.println("Enter names separated by spaces:");
StringTokenizer names1 = new StringTokenizer(key.readLine());
int tokens = names1.countTokens();
String[] names2 = new String[tokens];
String y;
for (int a = 0; a < tokens; a++) {
names2[a] = names1.nextToken();
}
System.out.println("\nSorted names:");
for (int a = 0; a < tokens; a++) {
for (int b = a + 1; b < tokens; b++) {
if(alphabetize(names2[a], names2[b])) {
y = names2[a];
names2[a] = names2[b];
names2[b] = y;
}
}
}
for (int c = 0; c < tokens; c++) {
System.out.println(names2[c]);
}
}
static boolean alphabetize(String a, String b) {
for(int c = 0; ; c++) {
if((c == a.length()-1) && (c == b.length()-1)) {
return false;
}
if(c == a.length()-1) {
return true;
}
if(c == b.length()-1) {
return false;
}
if((a.toLowerCase().charAt(c) - b.toLowerCase().charAt(c)) > 0) {
return true;
}
}
}
请帮忙!!谢谢!
【问题讨论】:
-
我正在查看您的代码,但我可以告诉您,它与其他词也有问题
标签: java arrays string sorting alphabetical