当前,我的程序使用多个if {}循环从名称中的单个字母创建新字符串。该程序如下所示:
public static String cool(String S) {
int c = s.charAt(0);
String adj = "";
if (c==97) {
adj += "Awesome";
return adj;
}
else if(c==98) {
adj += "Badass";
return adj;
}
...
else {
adj+= "Invalid Character, please try again";
return adj;
}
}
,我意识到您可以使用数组来解决此问题,但是由于我的班级还没有学习到这一点,但是我想在个人程序中使用它,所以我想知道最有效的方法是什么是。
非常感谢您!
编辑:我忘了添加一个事实,即如果代码中间的省略号不清楚,我将通过ASCII值对所有26个字母使用此代码。
编辑2:问题是要求输入最省时的方法,而不一定是计算机
编辑3:是的,我是笨蛋,我没有给我的方法命名lmao
答案 0 :(得分:5)
我个人会为此使用地图:
public static String myFunc (String s) {
Map<Character, String> map = new HashMap<>();
map.put('a', "Awesome");
map.put('b', "Badass");
...
return map.getOrDefault(s.charAt(0), "Invalid Character, please try again");
}
答案 1 :(得分:4)
为了改善您的开发,维护和性能,请使用切换用例运算符,因为您“沉迷”在这些初始的编程步骤中。
switch(int c) {
case 97:
...
case 98:
...
}
答案 2 :(得分:3)
正如其他人已经指出的那样,您的函数需要一个名称,而不仅仅是返回类型和参数。尝试类似
public static String stringMaker (String S) { }
另外,当您将c设为char时,为什么还要转换为整数?另外,请注意,您不能像这样转换大写字母,因为它们具有不同的ASCII码。