-2

我正在尝试为 2 个命令行参数编码,其中第一个是“u”或“l”,没有别的,第二个是 10 -20 个字母之间的 dna 序列(a,c,g,t),使用正则表达式进行验证两个参数并尝试在 arg 中以大写形式打印序列。是 u,如果 arg 是 l,则为小写。问题是我没有得到想要的输出。请指导我如何在java中执行此代码。

4

2 回答 2

1
public class BioHomework {
  public static void main(String[] args) {
    if(args.length < 2) {
       throw new IllegalArgumentException("two args required");
    }
    String sequence = args[1];
    if (!sequence.toLowerCase().matches("[atgc]{10,20}")){
      throw new IllegalArgumentException("second arg should be 'atgc' string between 10 and 20 characters");
    }
    if ("u".equals(args[0])) {
      System.out.println(sequence.toUpperCase());
    } else if ("l".equals(args[0])) {
      System.out.println(sequence.toLowerCase());
    } else {
      throw new IllegalArgumentException("first argument must be either 'u' or 'l'");
    }

  }
}
于 2013-02-26T03:14:54.360 回答
0

以这种方式调用您的应用java app_name u a,c,g,t

然后在主方法中(因为这些是命令行参数)你会得到类似的东西(我假设你的主方法参数名称是args): -

        if(args.length < 2){
            System.err.println("No or invalid argument entered");
        }else{
           String _case = args[0], dna_sequence = args[1]
           if (_case.equalsIgnoreCase("u")) {
                System.out.println(dna_sequence.toUpperCase());
            } else {
                System.out.println(dna_sequence.toLowerCase());
            }
    }

希望能帮助到你

于 2013-02-26T03:04:23.050 回答