• 締切済み

コマンドライン引数の*(アフタリスク)の表示について教えて下さい

皆様どうぞよろしくお願い申し上げます。アドバイス下さい。 java言語で質問です。調べたかぎりわからないことが起こりました。次のものです。コマンドライン引数で引数1は数字、引数2は数字、引数3は* で表示させるプログラムを作りました。引数3番目の演算子*(アフタリスク)を表示する場合にうまく表示できません。 C:\java>java test 2.0 15.0 * 2.0 15.0 Calculation.class ←表示されません。 プログラムは以下のものを作りました。見てください。 /** * 実行クラス:引数テストクラス */ class test{ public static void main(String args[]) { //引数を取得 double num1 = Double.parseDouble(args[0]); //引数1(数値) double num2 = Double.parseDouble(args[1]); //引数2(数値) String kigou = args[2]; //引数3(計算記号) //画面に出しています。 System.out.println(num1); System.out.println(num2); System.out.println(kigou); } }

  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.2

 こんばんは。  コマンドプロンプトでは、「*」や「?」はワイルドカードになりますので、通常の文字列として使う場合はダブルクォーテーションでくくってください。 java test 2.0 15.0 "*"  って、感じです。

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.1

単純にアスタリスクを使うと、VMがワイルドカードとして展開します。(Windowsの場合) 展開されたくない場合はダブルクォーテーションで囲んでください。 java test 2.0 15.0 "*"

関連するQ&A

  • コマンドライン引数

    『やさしいJava』で勉強してます。 import java.io.*; class Sam3 { public static void main(String args[]) { if(args.length != 1){ System.out.println("ファイル名が違うよ。"); System.exit(0); } try{ BufferedReader br= new BufferedReader(new FileReader(args[0])); String str; while((str = br.readLine()) != null){ System.out.println(str); } br.close(); }catch(IOException e){ System.out.println("エラー"); } } } で、コンパイルして、 Sam3 test2.txt と実行しても 「準備ができていません。読み取り中・・・」 としかでません。 なにか間違いがあるのでしょうか? お願いします。

    • ベストアンサー
    • Java
  • 起動引数の表示

    Java勉強中の初心者です。 起動引数の表示について お尋ねしたいことがあります。 起動引数が入力された場合には そのまま表示、無い場合は ”起動引数無し” と表示させたいのですが 下記のソースだと java.lang.ArrayIndexOutOfBoundsException のエラーが発生してしまいます。 このような場合はどのようにしたら よいのですか? よろしくお願いします。 ---------------------------------------------- public class Ren1 { public static void main(String args[]) { if(args[0].equals(null)){ System.out.println("起動引数無し"); } String s = args[0]; System.out.println(s); } }

    • ベストアンサー
    • Java
  • コマンドライン引数を用いて。

    コマンドライン引数を用いて足し算をさせるプログラムです。 class goukei{ public static void main(String args[]){ int i, count; int sum = 0; int a[]; count = args.length; for(i=0; i<args.length; i++){ int arg_i = Integer.parseInt(args[i]); sum = sum + arg_i; } System.out.println("引数の数は" + count); System.out.println("合計は" + sum); } } と考えたのですが、もっとこうしたほうがいいという部分があれば教えてください。 一応これでできているとは思うのですがイマイチ自信がありません・・・。

    • ベストアンサー
    • Java
  • javaで1.8x10の308乗÷(ー1.8x10の308)乗割り算をしたいです。

    java初心者です。下記の割り算するプログラムが できません。ご指導下さい。実行結果はコメントどめ しました。 /*num1=1.8x10^308,num2=1.8x10^308としnum1/num2,(-num1)÷(-num2)、num1/0を計算する。 実行結果 C:\keisanclass>java WarizanMain 1.8 1.8 NaN 演算不可能と表示されました。 C:\keisanclass>java WarizanMain -1.8 -1.8 NaN 演算不可能と表示されました。 C:\keisanclass>java WarizanMain 1.8 0 Infinity 無限大と表示されました。 */ class WarizanMain { public static void main(String args[]) { double num1=0.0; double num2=0.0; num1=Double.parseDouble(args[0]); num2=Double.parseDouble(args[1]); double z = Math.pow(10,308); System.out.println((num1*z)/(num2*z)); } }

    • ベストアンサー
    • Java
  • 小数点以下の表示が正しく表示されなくて困ってます

    public class test{ public static void main(String args[]){ double a = .05; System.out.println(a*3.0); } } というプログラムなんですけども。 アウトプットを表示すると >java test 0.15000000000000002 っというふうに表示されてしまいます。 プログラム自体を変えずに、0.15という表示を出したいのですが、どうしてもでません。誰か、教えていただければありがたいと思っています。よろしくお願いします。

    • ベストアンサー
    • Java
  • コマンドライン引数の掛け算のプログラムを教えて下さい。

    コマンドライン引数で*で掛け算するプログラムを作成しています。 「"*"」の入力なしに c:\myweb\keisanmain>java myweb.Keisanmain.Keisan 1 * 2 を実行してくれる掛け算のプログラムを自分なりにここまで作成しました。 実行の結果 c:\myweb\keisanmain>java myweb.Keisanmain.Keisan 1 * 2 Exception in thread "main" java.lang.NoClassDefFoundError: myweb/Keisanmain/Keisan というバグがでます。 どうかわかる方お時間があるときに教えて下さい。 package myweb.keisanmain; class Mainkeisan{ public static void main (String args[]){ if(args.length == 0){ }else if(args.length == 1){ }else if(args.length == 2){ }else if(args.length == 3){ /** *c:\myweb\keisanmain>java myweb.Keisanmain.Keisan 1 * 2 Exception in thread "main" java.lang.NoClassDefFoundError: myweb/Keisanmain/Keis an */ double num =0.0; Integer a = new Integer("args[0] * args[1]"); double b = a.doubleValue(); System.out.println(b); } } }

    • ベストアンサー
    • Java
  • 【Java】複数の引数の数値と文字列の判定

    Javaについてです。 コマンドライン引数を複数渡し、渡ってきた値が数字のみの場合は、数値*数値の文字数を出力し 数字のみでない場合は文字列を逆から1文字ずつ出力する。 数値の判定はtry/catchで行い、catchメソッドには「stringFlg = true;」のみにする。 というプログラムを作りたいのですが、 引数が1つの時は上手くいくのですが、11 2あ あ3 44を渡した場合、 22 あ 2 3 あ 88 と出るはずが、 22 1 1 あ 2 3 あ 4 4 と出てしまいます…。 どうしたら全ての引数を正しく表示出来るのでしょうか?教えて下さい。 現時点のソースコードです。 public class Test { public static void main(String[] args) { boolean stringFlg = false; try { if(StringUtils.isNumeric(args[0])){ for(String arg : args) { int num = Integer.parseInt(arg); System.out.println(num * arg.length()); } } else{ stringFlg = true; } } catch (NumberFormatException e) { stringFlg = true; } if(stringFlg){ for(String val : args) { String[] str = val.split(""); for(int i = str.length-1; i >= 0; i--){ System.out.println(str[i]); } } } } }

    • ベストアンサー
    • Java
  • コマンドライン引数

    すいません、java初心者です。 コマンドライン引数として渡されたファイルを16進表示したいのですが、右のテキスト部分の文字のあいうえおなどの日本語部分が出てきこず途中で止まってしまいます・・・ 何が悪いか、改善方法教えてください!! 宜しくお願い致します!!!! import java.io.*; class Lesson1{ static char ch[]= {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' }; //16種類 static int c1,c2; public static void main(String args[]) { System.out.println("Address 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF"); System.out.println("--------+--------------------------------------------------+------------------"); if(args.length !=1){ System.out.println("ファイル名を指定してください。"); //ファイルがついてない場合。 System.exit(1); } try { //入力ストリームを作成。 FileInputStream fis= new FileInputStream(args[0]); //ファイル読み取り //InputStreamReader in = new InputStreamReader(fis, "SJIS"); BufferedReader br= new BufferedReader(new FileReader(args[0])); // 読込みループ。 int d=0; int c; // 読み込んだものをsに入力。 String str; int n = 0, k = 16; //0~Fまでの数字 String s=""; while( (c = in.read()) != -1) { if( k > 15 ) { System.out.println(" "+s); //右のパーツ s = ""; System.out.printf("%08X: ",n); //Address k = 0; } d++; //バイト数表示 n++; k++; // 整数cを上位4ビットc1、下位4ビットc2に分解。 c1 =c/16; c2 =c%16; System.out.print(" " + ch[c1] + ch[c2]); //真ん中のパーツ。 //System.out.printf(" "+Integer.toHexString(c)); if( (c<= 0x00 || c<= 0x19) ) { //右のパーツ(表示できない場合 s = "."; } else{ //表示できる場合 s =s+(char)c; } } //String s1=String.valueOf(c); //int len =s.length(); System.out.println(""); System.out.println(""); System.out.println("ファイルサイズは"+d+"byteでした。"); // 入力ストリームを閉じる。 in.close(); } catch ( IOException e ) { System.out.println("ファイルの読み込みに失敗しました。"); //ファイル名が正しくない場合。 } } } 実行結果 Address 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF --------+--------------------------------------------------+------------------ 00000000: 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 66 1234567890abcdef 00000010: 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 ghijklmnopqrstuv 00000020: 77 78 79 7A 41 42 43 44 45 46 47 48 49 4A 4B 4C wxyzABCDEFGHIJKL 00000030: 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5AException in thread "main" j ava.lang.ArrayIndexOutOfBoundsException: 772 at Lesson1.main(Lesson1.java:55)

    • ベストアンサー
    • Java
  • インスタンスの情報表示について

    Java初心者です。 例えば次のようなソースがあって、double型の変数numの情報を表示するためにtoStringをオーバーライドするとすると、どのようにすればStringを返せるのでしょうか。 public class Test { private double[] num; public Test(double a, double b, double c) { num = new double[3]; this.num[0]=a; this.num[1]=b; this.num[2]=c; } public toString() { // return "インスタンスは: "+ } public static void main(String args[]) { Test a = new Test(4.3, 5.6, 12.7); System.out.println(a.toString()); } }

  • 引数を指定しなければならないサンプルプログラムをeclipseでデバッグする方法について

    お世話になります。 表題のとおりなのですが、Allin one eclipse 3.5.0の環境に於いて引数を指定しなければならないサンプルプログラムを実行すると、本来なら引数を聞いてこなければならないところ、そのような振る舞いもなくエラーになります。 サンプルプログラムは以下の内容となります。 class List1{ public static void main(String[] args){ //1つ目の引数args[0]を表示します System.out.println("1つ目の引数:" + args[0]); //2つ目の引数args[1]を表示します System.out.println("2つ目の引数:" + args[1]); } } どなたか問題点がわかる方、ご教示願います。 よろしくお願いします。