(質問)
(1)コマンドラインというのがわかりません。
(2)下の説明のところが全部わかりません。
よろしくおねがいします!!
--------------------------------------------------
(説明)
ファイルを処理するとき、ファイル名指定はコマンドラインから行うのが便利です。Javaではコマンドライン引数はmain( )メソッドの引数として次のように用意されています。
public static void main (String args[ ]) {
・・・・・
}
このargs引数を使うと、コマンドラインから入力されたパラメーターを次のように取得できます。
最初のパラメーター文字列は0です。
args.length
args[0]
args[1]
args [2]
・
・
・
No.4ベストアンサー
- 回答日時:
#2のbakatonoです.長くなります.すみません.
>すいませんここをもう一度お聞きしたいのですがfile1 file2は
>ファイルそのものじゃなくて文字列とはどういうことですか?
そのままの意味ですよ.
実行するコマンド(プログラム名)のあとに,スペースで区切って入れた
文字列が全て「コマンドライン引数」です.スペースで区切って複数書くと,
前から順番にプログラムに渡され,args[]にそのままの順番で入ります.
>a bとかだったら文字列になるのはわかるんですが、file1 file2って
>ファイルですよね?それが文字列になるというのがわかりません。
>ファイル自体が引数として渡されないんですか?
コマンドライン引数は基本的に文字列として渡します.なぜならそれが一番都合がいいからです.
コマンド(プログラム)は,ファイルをいじくるだけのものとは限りませんよね?
「文字列をごにょごにょする」ものもあるでしょうし,「数値をがちゃがちゃする」
ものもあるでしょう.
私が前に挙げた例(例1とします)は,hoge.exeが「二つのファイルをもにょもにょする」
というプログラムだった場合の例といえます.
この場合,渡されたファイル名の文字列を使って,プログラム内で該当するファイル
をオープンして,それらのファイルをもにょもにょ処理することになります.
例2)
文字列を2つ渡して,一つ目の文字列の中に二つ目の文字列がいくつ含まれるかを
数えるプログラム「gonyo.exe」の場合
c:\>gonyo.exe hogehogeauau au ←コマンド(プログラム)とコマンドライン引数
c:\>2 ←実行結果
hogehogeauauが第1引数,auが第2引数で.プログラム内部でごにょごにょ数えたら
hogehogeauauという文字列の中にauという文字列が2回含まれてました.
こんなプログラムを組みたい場合,渡したいのは文字列そのものですよね?
また
例3)
数字を2つ渡して,一つ目の数字と二つ目の数字の合計を求めるプログラム
「keisan.exe」の場合
c:\>keisan.exe 3 5 ←コマンドとコマンドライン引数
c:\>8 ←実行結果
こんなプログラムの場合,渡したいのは数字ですが,文字列として渡して,
プログラムの内部で文字列→数値変換してガチャガチャ計算すればいいのです.
さらにいうと,上記例の混在するケースも考えられます.ファイル名と数字を与えて,
そのファイルを数字の数だけ分割するプログラム...とか,いくらでもあります.
ね?とりあえず文字列で渡すのが一番都合がいいでしょう?
プログラム内部で好きなように使う.これでどんなパターンにも柔軟に対応できます.
==蛇足==
こういうのを,「汎用性(が高い)」と言い,プログラミングではとても重要なことの
ひとつであることを覚えておきましょう.がんばって勉強してくださいね^^
bakatonoさんお返事ありがとうございます!
>長くなります.すみません.
いえいえ僕のためにとても詳しく解説してくださってとても感謝しております!頭がさがりっぱなしです。とても参考になりました。
今まで文字列というのが出てくるたびになぜいちいち文字列にするんだろうと不思議に思っていますたがbakatonoさんの解説を聞いて疑問が解決できました!そういうことだったんですね。
今回はどうもありがとうございました!!まだ始めたばっかりですがもっとJavaを勉強してbakatonoさんみたいになれるようにがんばりたいと思います。
No.3
- 回答日時:
>DOSPROMPT(DOS画面で通常>)の出ている行(コマンドライン)にプログラム名(MS-DOSプログラムならEXE形式のファイル名)を入れると、プログラムがOSにより呼び出されて実行権がそちらに与えられ実行されるが、プログラム名を入れる行のその続きにスペースを区切りにして、パラメータや引数(Arguments->Args)を入力するとプログラムの中で使えますよと言うこと。
そして1つに限らず、コマンドラインの制限文字数まで
複数個続けられます。
この例ではString args[]ですから、文字列を入れてください(入れたものは文字列として解釈されますよ)。そしてそれらは、配列に入れられて、1つ目はargs[0]で、2番目はargs[1]で、・・・参照して、その内容(文字列)をプログラムの中で使えますよ。
文字列の長さはargs[0].lengthでわかりますよ。
ということだと思います。
お返事ありがとうございます!
素晴らしい回答どうもありがとうございます。
ずっと考えてた疑問を解決することが出来てうれしいです。これでJavaの勉強をまた進められそうです。
どうもありがとうございました!
No.2
- 回答日時:
そっか...最近の人ははじめて触るPCにwindowsとか入ってるからコマンドラインがわかんないのね...
コマンドラインの基本的なこと↓
http://www.atmarkit.co.jp/fwin2k/operation/comma …
コマンドライン引数については,私はJavaはよくわからんので基本概念だけの解説となりますが...
例えばあなたが「hoge.exe」というプログラムを起動するときに,DOSプロンプトで
c:\>hoge.exe file1 file2
とか打ち込んで起動すると,"flle1"と"file2"という文字列が「コマンドライン引数」としてhoge.exeに渡される.一方,渡されたhoge.exeの中では,配列args[]の中に順番に,
args[0]="file1"
args[1]="file2"
,...てな感じで格納されてますよ.ってことです.
上記例は文法とかは気にしないでください.Javaわからないので.概念だけ汲み取ってくださいね.
お返事ありがとうございます!
コマンドラインのことが大変よくわかりました。
>c:\>hoge.exe file1 file2
>とか打ち込んで起動すると,"flle1"と"file2"という文>字列が「コマンドライン引数」としてhoge.exeに渡され>る.
すいませんここをもう一度お聞きしたいのですがfile1 file2はファイルそのものじゃなくて文字列とはどういうことですか?a bとかだったら文字列になるのはわかるんですが、file1 file2ってファイルですよね?それが文字列になるというのがわかりません。ファイル自体が引数として渡されないんですか?
No.1
- 回答日時:
ウインドウズではMS-DOSのことと考えればいいでしょう。
CUI(キャラクターユーザーインターフェイス)のことですよ。
ひきすうというのは関数に与える変数のことです。
y=ax+bのxですね。
publicはアドレス空間がプログラム全体で有効ということ、staticは定数ということ、voidは戻り値がないということ、mainはプログラムのメインの関数ということです。
[]は配列ということですね。
では。
お返事ありがとうございました!
なるほどコマンドラインはMS-DOSのことだったんですね。どうもありがとうございました。他の質問にもお答えしてくださって感謝しております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
JavaScriptでコマンドプ...
-
OLE又はDDEを使うVISUAL BESIC...
-
vbsで起動したexeを終了させる方法
-
VC++での外部プログラムの実行
-
以下のように複数のファイルを...
-
VC++から引数付きexeファイルの...
-
【HTML】 Wordファイルの指定...
-
BufferedWriter(OutPutStream)....
-
コンポーネント`MSCOMM32.cox'...
-
なぜプロセスはファイルにアク...
-
コマンドプロンプトで外のexeや...
-
htaファイルが実行されません
-
OpenCVを Borland C++ Builder...
-
コマンドプロンプトにてスター...
-
c/c++ ビルドしたにもかかわら...
-
外部プログラムを実行してその...
-
eclipseで作ったプログラムを他...
-
アプリで作成したexeファイルを...
-
batからexeを起動した際の戻り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
JavaScriptでコマンドプ...
-
VBAで他のプログラムが起動して...
-
VBAでEXEファイルを動かす方法...
-
LINK : fatal error LNK1104に...
-
c/c++ ビルドしたにもかかわら...
-
jarの開き方を教えてください。
-
eclipseで作ったプログラムを他...
-
VBAでMP3を鳴らしたい
-
ローカルのHTMLからexeファイル...
-
コンパイル ./aと./a.out の違い
-
VC++から引数付きexeファイルの...
-
WScript.Echo と msgbox
-
コンポーネント`MSCOMM32.cox'...
-
実行ファイルと実行モジュール...
-
jarファイルとjava.exeの関連付...
-
JAVA .jarファイルに再圧縮する...
-
ネットワーク越しのEXEファ...
-
コマンドプロンプトで外のexeや...
おすすめ情報