2012-04-05 70 views
1

所以我簡單的問題給大家的是,會有人能夠向我解釋的根本原因,以我爲什麼要分析在(字串[] args)一個說法?我對這個話題不是非常瞭解,並希望得到一些快速的幫助,這樣我就可以更好地理解事情。解析參數

謝謝!

+0

什麼是「分析一個說法」是什麼意思? – 2012-04-05 00:27:32

+0

這是'java.exe'命令行參數暴露給你的代碼的方式。 – ulmangt 2012-04-05 00:29:06

回答

3

你問爲什麼你會怎麼做呢?那麼,當有一個需要(或要求)做到這一點。如果您的應用程序應,例如,支持像-install-debug-foo -bar -quick -user=simpson -pass=bart

在Linux的方式ls類似的論點支持像-R遞歸和dir爲「DOS」支持/S遞歸參數。您希望「解析」這些論點(例如「看看他們,弄清楚他們的意思」),以使您的申請相應地執行。

+0

Hi Rob。感謝您的解釋!因此,根據我對你的帖子的理解,字符串參數必須被解析,因此,比如說,在linux中,與應用程序一起調用一個標誌?喜歡說:java helloworld recursive = java helloworld -R?如果這沒有通過解析方法,遞歸「標誌」將不起作用? – 2012-04-05 17:09:31

+0

我不能讓它變得比這更簡單:'args' string []被傳入main中是有原因的。當你(例如你的代碼)選擇忽略參數時,應用程序將如何受到這些參數的影響?這不像是一些神奇的東西,它知道像''/ FOO''或''-WhoopteeDoo''這樣的隨機字符串應該做什麼,並使您的應用程序相應地執行。這就像創建一個'返回7'的'​​sum(a,b)'函數。通過忽略參數,代碼不會做你想做的事情。你需要'返回a + b'。傳遞給main的args []也一樣。 – RobIII 2012-04-05 21:32:47

1

這是一個在Java命令行應用程序的工作非常方便的方式。例如,如果您想創建一個批處理文件來運行某個Java應用程序(也許它在您的計算機上設置郵件配置文件),則可以使用命令行參數來輸入甚至是標準操作系統值,例如用戶名,等

你需要做這一切的時候?哎呀不,但就像編程中的所有東西一樣,它是我們在適當時使用的工具。 :)

0

典型的程序使用命令行參數會,例如,測試,如果一個數是素數:

java mytools.IsPrime 1234567 

或翻譯程序可以幫助找到一個翻譯:

java mytools.Translate Kindergarten 

在Windows上,你可能很少使用的命令行,但如果你通過通過拖放文件的列表拖放到你的程序,操作系統將這種動作名稱的列表,這是傳遞給你的程序,這樣你就可以操作對他們:

java mytools.PrettyPrint PrettyPrint.java Translate.java IsPrime.java