2016-04-08 53 views
0

我正在尝试编写一个排序程序,提示输入名称并按字母顺序对它们进行排序,并大写每个名称的第一个字母。我只是简单地迷失了。
我在考虑将代码拆分成两个方法,一个用于套管,另一个用于排序。Java插入名称〜CompareTo

这是我走到这一步,为资本位:

titleCase(String x) 

name = x 

x.toLowerCase 

x.substring(0;)toUppercase 

任何帮助将不胜感激。

最终的结果应该是这样的:

输入一个名字:

瑞伯

输入一个名字:

丽塔

输入一个名字:

SUE

输入一个名字:

阿黛尔

输入一个名字:

芭芭拉

输入一个名字:

停止

[阿黛尔,芭芭拉,Rita,Sue,Zeb]

+0

那你最近有什么问题?我们不只是为你写一些代码。你所提供的小代码甚至没有有效的代码 – redFIVE

+0

SO并不是真正的抛弃作业的地方。你有什么特别的问题?似乎你手头有大写字母(有些)。你将如何收集它们?一个列表? –

+1

[按字母顺序排列字符串的简单方法]的可能重复](http://stackoverflow.com/questions/11176227/simple-way-to-sort-strings-in-the-case-sensitive-字母顺序) – rafaelbattesti

回答

0

你可以写接管每个字符的字符串和循环的方法,将它们设置为适当的值:

public String titleCase(String toEdit) { 
String output = ""; 
String toAppend = ""; 
for (int i = 0; i < toEdit.length; i++) { 
    if (i == 0) { 
    toAppend = (toEdit.charAt(i) + "").toUpperCase(); 
    } else { 
    toAppend = (toEdit.charAt(i) + "").toUpperCase(); 
    } 
    output = output + toAppend; 
} 
return output; 
} 
+0

感谢您的帮助@ nhouser9 – Ferrariman11

+0

@ Ferrariman11乐于帮助。如果它回答了你的问题,那么如果你将其标记为答案,或者通过upvote来抵消我通过redFive获得低投入而失去的声誉 – nhouser9

0

分离的功能是一个好主意。但是,由于语法错误,您编写的代码片段将会失败。它看起来像你在正确的轨道上的套管部分。

查看Java API中的字符串类,并查看compareTo函数,以比较字符串之间是否相互排序。

0

大写字母第一个字符,将其转换为字符串,然后取其余名称,小写字母然后将其连接到第一个字符。如果只有一个字符,那么只需要大写字母并将其设为字符串。

public String nameCase(String name) { 
    if(name == null || name.length() == 0) { 
    return name; 
    } 
    if(name.length() > 1) { 
    return String(Character.toUpperCase(name.charAt(0))).concat(name.substring(1).toLowerCase()); 
    } else { 
    return String(Character.toUpperCase(name.charAt(0))); 
    } 
}