从单词的单个字母创建字符串的更有效方法

时间:2018-12-09 22:13:10

标签: java

当前,我的程序使用多个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

3 个答案:

答案 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码。