日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java parse_Java命令行界面(第9部分):parse-cmd

發布時間:2023/12/3 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java parse_Java命令行界面(第9部分):parse-cmd 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java parse

parse-cmd庫由單個類ParseCmd.java組成,該類是“用于在Java應用程序中定義和解析命令行參數的Java類。” 該庫托管在Google Code存檔上 ,因此可以隨時關閉 。 該JAR似乎也可以在GitHub上使用 。 這篇文章介紹了如何使用parse-cmd 0.0.93處理Java中的命令行參數。

parse-cmd Requirement Wiki列出了幾種用于處理Java命令行參數的替代方法,包括本系列前面已介紹的替代方法。 在列出這些替代方案之后,它指出:“查看這些條目和其他條目,是時候嘗試另一個解析器了。” 然后,文檔繼續描述parse-cmd試圖滿足的要求。

下一個(不完整的)代碼清單演示了使用parse-cmd解析命令行參數的“定義”階段。 [請注意,本文中的示例與本系列的前八篇文章中的示例相似。]

parse-cmd的“定義”階段

/** String displayed where there is a problem processing arguments. */ private final static String USAGE ="java examples.dustin.commandline.parsecmd.Main --file <filePathAndName> [--verbose 1]";public static void main(final String[] arguments) {final ParseCmd parseCmd= new ParseCmd.Builder().parm("--file", "").req().parm("--verbose", "0").help(USAGE).build();

代碼清單演示了使用ParseCmd.Builder()和該類實例上可用的流利方法的預期命令行參數的定義。 每個方法依次返回同一Builder類的實例,以便可以將這些方法調用鏈接在一起,如上所示。 如上所示,用法/幫助字符串是手動構建的,并通過help(String)方法提供給Builder ,而不是由parse-cmd自動構建。

ParseCmd.Builder類的parm方法已重載,但是在此代碼清單中,我使用了parm(String, String)方法parm(String, String)該方法接受參數的名稱和該參數的“默認”值。 如果我僅向該方法提供一個字符串,該方法僅接受一個字符串,那么該參數的默認值將假定為“ 1”。 對于文件路徑和名稱參數,這可能導致parse-cmd假定參數類型錯誤。 通過顯式提供默認的空字符串,parse-cmd可以將文件路徑和名稱的參數準確地視為可變長度字符串。

上面的代碼中也定義了--verbose參數,并且還提供了默認值,因為如果沒有提供參數,則隱式默認值“ 1”將使冗長性“ on”,并且不是默認值。使用Java進行命令行分析的系列文章中的任何較早的文章。

在Builder一個鏈式返回實例上調用req()表示需要先前定義的參數( --file )。 另一個參數( --verbose )沒有指定此參數,因此隱式默認為可選。

據我所知,使用parse-cmd為定義的命令行參數指定別名或同義詞并不容易。 換句話說,我看不到告訴parse-cmd --file和-f是相同的命令行參數的方法。 因此,在此示例中,我僅對參數--file和--verbose使用帶雙連字符的“ long”版本。

有了本系列中以前的基于Java的命令行解析庫,“解析”階段緊隨“定義”階段。 盡管可以使用parse-cmd進行相同的轉換,但廣告且首選的方法是在“定義”階段之后和“解析”階段之前實施“驗證”階段。 此階段使您可以查看在驗證可用命令行參數期間是否發現任何錯誤,并在下一個(不完整的)代碼清單中進行演示。

parse-cmd的“驗證”階段

final String errorString = parseCmd.validate(arguments); if (!errorString.isEmpty()) {out.println("ERROR: " + errorString); }

剛剛顯示的代碼清單演示了ParseCmd.validate(String[])方法的使用,該方法用于驗證命令行參數是否與“定義”階段中定義的預期參數匹配。 如果有任何意外結果,則返回非空字符串。 空的String被認為是一件好事,它表示“有效”命令行參數。

使用有效的參數,下一步可以“解析”那些命令行參數,如下面的單行代碼清單所示。

使用parse-cmd進行“解析”階段

final Map<String, String> parsedArguments = parseCmd.parse(arguments);

調用ParseCmd.parse(String[])是參數名稱到參數值的Java Map<String, String> 。

通過簡單地訪問解析階段返回的Map<String, String>即可實現parse-cmd的“詢問”階段。 可以通過參數名稱查詢地圖的鍵,并且返回的值是與該參數名稱關聯的值。 請注意,這意味著所有參數,甚至是像--verbose類的“布爾”參數,都具有與之關聯的值,而不是唯一需要的標志是否存在。 換句話說,-- --verbose在命令行上表示時必須后面跟一個值。 在下面的代碼清單中演示了在這種情況下對兩個預期參數的詢問。

parse-cmd的“審訊”階段

final Map<String, String> parsedArguments = parseCmd.parse(arguments); final String filePathAndName = parsedArguments.get("--file");out.println("The path/name of the file is '" + filePathAndName+ "' and verbosity is set to '" + parsedArguments.get("--verbose") + "'.");

GitHub上提供了示例的完整代碼清單,該示例的片段已在本文中顯示。

下一個屏幕快照演示了未提供必需的命令行參數( --file )時顯示的消息。

下面的屏幕快照演示了如何成功應用基于parse-cmd的--file和--verbose命令行參數的命令行處理。

在選擇框架或庫來幫助Java進行命令行分析時,需要考慮parse-cmd的一些其他特征。

  • parse-cmd是帶有Apache License 2.0的開源。
  • parse-cmd托管在Google代碼檔案庫中 ,該檔案庫可隨時被“拒絕”(當前狀態為“將于2016年初被拒絕”)。
  • parsecmd-0.0.93.jar JAR文件的大小約為50 KB。
  • parse-cmd采用流暢的Builder實現,而不使用注釋。

parse-cmd是(當前)另一個Java庫,可供需要處理命令行參數的Java開發人員使用。 它使用一些假設和含義來做出一些決策。 parse-cmd的作者寫道,盡管“有幾種基于Java的命令行解析解決方案可用”,但parse-cmd仍是編寫的,因為“它們通常都很難學習和使用。”

其他參考

  • 解析cmd
  • parse-cmd來源
  • parse-cmd下載
  • parse-cmd – Requirement.wiki
  • parse-cmd – sampleSource.wiki

翻譯自: https://www.javacodegeeks.com/2017/07/java-command-line-interfaces-part-9-parse-cmd.html

java parse

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java parse_Java命令行界面(第9部分):parse-cmd的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧洲精品在线播放 | 一呦二呦三呦精品网站 | 欧美456| 欧美色资源 | 国产三区精品 | 欧美激情视频一区二区三区不卡 | 欧美激情亚洲色图 | 精品无码国产污污污在线观看 | 欧美乱做爰xxxⅹ久久久 | 亚洲av无码一区二区三区人妖 | 青娱乐毛片 | 天天操天天爽天天干 | 国产精品国产三级国产a | 欧美另类z0zx974 | 欧美一性一交 | 久久精品国产亚洲av久 | 国产网站大全 | 理论片一级 | 97色伦97色伦国产欧美空 | 99国内精品| 亚洲青青草原 | 国产精品美女www爽爽爽 | 人人妻一区二区三区 | 中文字幕无产乱码 | 九色综合网 | 成年人高清视频 | 麻豆系列在线观看 | 性少妇xxxxx 亚洲一卡二卡在线观看 | yy4138理论片动漫理论片 | 九九热最新视频 | 亚洲在线观看视频 | 午夜精品免费视频 | 国产精品毛片一区二区在线看舒淇 | 开心激情五月婷婷 | 日本一区二区三区在线观看视频 | 色哥网| 日韩精品一区二区三区无码专区 | 欧美日韩亚洲国产另类 | 久久99国产精品久久99 | 69久人妻无码精品一区 | 在线观看视频一区二区 | 成年人在线视频免费观看 | 综合色婷婷一区二区亚洲欧美国产 | 精品一区二区在线观看视频 | 岛国片在线播放 | 波多野结衣福利 | 狠狠躁| 国产亚洲精品精品国产亚洲综合 | 日韩中文字幕av在线 | 明星双性精跪趴灌满h | 一区二区在线视频播放 | 亚洲天堂一区在线观看 | 欧美成人免费视频 | 免费观看成人鲁鲁鲁鲁鲁视频 | 人妻换人妻仑乱 | 国产深夜福利在线 | 免费日韩一区二区 | 日韩成人综合 | 午夜精品久久久久久久爽 | 久久中文字幕无码 | 精品视频一区二区 | 久久久888 | 私人网站 | 国产xxx | 午夜精品一区二区三区在线播放 | 中文字幕三级视频 | 中文在线字幕 | 亚洲国产欧美另类 | 亚洲一区二区三区免费 | 玖玖爱这里只有精品 | 久久一区二区三区视频 | 中文字幕视频在线观看 | 天天干天天拍 | 国产女主播视频 | 欧美网站在线 | 成人在线视频网址 | 国产主播一区二区三区 | 午夜精品美女久久久久av福利 | 久久露脸国语精品国产 | 亚洲国产精品免费在线观看 | 日日骚网| 青青成人网 | 香蕉视频色 | 天天做天天爱天天爽 | 日本在线视频免费 | 亚洲色图50p| www国产亚洲精品久久网站 | 黑森林av凹凸导航 | 色老大视频| 午夜爱爱毛片xxxx视频免费看 | 中国免费观看的视频 | 精品无码人妻一区 | 久久久久精 | 影音先锋中文字幕在线播放 | 日韩欧美日韩 | 久久久黄色网 | julia一区二区三区在线观看 | 黄色大片免费网站 | 国语精品久久 |