解決java main函數中的args數組傳值問題
這幾天面試中有遇到關於main數組中的args數組傳值的問題,一般是從命令提示符中傳值,也可以直接在java代碼中賦值。
而且這個數組的長度是動態的,根據傳值的個數確定數組的長度。
1.從命令提示符中傳值
我在桌面新建瞭一個文本文檔重命名為TestMain.java,代碼如下
public class TestMain { public static void main(String[] args) { System.out.println("hello "+args[0]); System.out.println("welcome "+args[1]); } }
按住shift在桌面單擊鼠標右鍵,在此處運行命令提示符
輸入命令javac TestMain.java編譯成功後,在運行java TestMain aa bb cc dd
截圖如下
此時如果輸出args.length長度應該為4
2.直接在java代碼中賦值,eclipse中代碼如下
//測試java中main函數args數組的使用 public class TestMainArgs { /** * @param args */ public static void main(String[] args) { args = new String[]{"abc","def","ghi"}; System.out.println(args.length); System.out.println(args[0]); } }
輸出結果是
3 abc
補充:Java中String [] args中的args是什麼意思
String args[] 與 String[] args 沒有區別,都可以執行,但推薦使用 String[] args,這樣可以避免歧義和誤讀。
Java 中args一般存在main主類方法內,String args[ ]或者String[ ] args表示給主方法傳一個字符串數組. 而args是一個字符串數組的變量名,不是關鍵字,是arguments的縮寫,隻是一個默認名,一般都習慣性照寫.
如下:
1. 可以從run config裡面設置參數
如下圖:
2. 拿到這個args設置的剛才的參數“20 30”,打印出來:
3. 如果不設置參數直接輸出args[0]會報錯
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0
at args參數問題.ArgsTest.main(ArgsTest.java:8)
如圖:
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。