我正在尝试编写2个命令行参数,其中第一个是'u'或'l',没有别的,第二个是10到20个字母之间的dna序列(a,c,g,t),使用常规表达式以验证两个参数并尝试以大写形式打印序列(如果arg)。是你和小写如果arg是l。问题是我没有获得所需的输出。 请指导我如何在java中执行此代码。
答案 0 :(得分:0)
以java app_name u a,c,g,t
然后在main方法中(因为这些是命令行参数)你会有类似的东西(我假设你的主方法参数名是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());
}
}
希望有所帮助
答案 1 :(得分:0)
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'");
}
}
}