我正在为一个学校项目制作一个简单的脚本,如果我输入一个字母,我希望它可以打印氨基酸序列。

package emmas;

import java.util.Scanner;

public class Emma {
    public static void main(String args[]){
         @SuppressWarnings("resource")
         Scanner Input = new Scanner(System.in);
         int end = 0;
         String f = "A,T,C", e = "A,T,G";

         while (end != -1){
             if(Input.hasNext()){
                  String input = Input.next();
                  Input.nextLine();
                  if(input.equalsIgnoreCase("f")){
                     System.out.println(f);
                  } else if(input.equalsIgnoreCase("e")){
                   System.out.println(e);
                  }
                }
            }
      }
}


这是我的代码,我想这样做,以便如果键入例如“ ffe”,它将返回
ATC,ATC,ATG
我不知道该怎么办(这最多需要申请20个不同的字母。这里我只有2个字母,因为我还没有全部添加)。

最佳答案

您可以继续做到目前为止所做的事情,也可以简单地构建一个“ Map”对象,用值对其进行初始化,然后引用该对象以打印相应的值。

初始化:

private static final Map<Character,String> map = new HashMap<>();
static {
   map.put('f', "ACT");
   map.put('e', "ATG");
   ...
}


用法:

System.out.println( map.get(input.charAt(0) ) );


这样,您的方法就不需要任何if。

其他注意事项


您实际上并不希望返回几个值。您正在寻找将给定的字符串与一组不同的可能值进行匹配的方法。
如果要使多个字符连续显示(即它们之间没有空格),则需要遍历输入字符串的每个字符:

for( int i=0; i< input.length(); i++){
    System.out.println( map.get( input.charAt(i) ) );
}

除上述事项外,您还需要:


在输出中添加逗号
检查无效字符

关于java - Java字符串返回多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39688145/

10-10 00:53
查看更多