-2

最初の引数が 'u' または 'l' で、2 番目の引数が 10 ~ 20 文字の DNA シーケンス (a、c、g、t) である 2 つのコマンド ライン引数をコーディングしようとしています。正規表現を使用して検証します。両方の引数と、引数の場合はシーケンスを大文字で出力しようとしています。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 に答える