相关疑难解决方法(0)

在Java中的空格上拆分字符串,除非在引号之间(即将\"hello world \"作为一个标记处理)

如何String基于空格拆分,但将引用的子串作为一个单词?

例:

Location "Welcome  to india" Bangalore Channai "IT city"  Mysore
Run Code Online (Sandbox Code Playgroud)

它应存放在ArrayList

Location
Welcome to india
Bangalore
Channai
IT city
Mysore
Run Code Online (Sandbox Code Playgroud)

java

57
推荐指数
1
解决办法
4万
查看次数

将包含命令行参数的字符串拆分为Java中的String []

C#的这个线程类似,我需要将包含命令行参数的字符串拆分到我的程序中,这样我就可以让用户轻松运行多个命令.例如,我可能有以下字符串:

-p /path -d "here's my description" --verbose other args
Run Code Online (Sandbox Code Playgroud)

鉴于上述情况,Java通常会将以下内容传递给main:

Array[0] = -p
Array[1] = /path
Array[2] = -d
Array[3] = here's my description
Array[4] = --verbose
Array[5] = other
Array[6] = args
Run Code Online (Sandbox Code Playgroud)

我不需要担心任何shell扩展,但它必须足够聪明,以处理单引号和双引号以及字符串中可能存在的任何转义.有没有人知道在这些条件下shell会解析字符串的方法?

:我不是需要做的命令行解析,我已经使用joptsimple做到这一点.相反,我想让我的程序易于编写脚本.例如,我希望用户能够在一个文件中放置一组命令,每个命令在命令行上都是有效的.例如,他们可能会在文件中键入以下内容:

--addUser admin --password Admin --roles administrator,editor,reviewer,auditor
--addUser editor --password Editor --roles editor
--addUser reviewer --password Reviewer --roles reviewer
--addUser auditor --password Auditor --roles auditor
Run Code Online (Sandbox Code Playgroud)

然后用户将运行我的管理工具,如下所示:

adminTool --script /path/to/above/file
Run Code Online (Sandbox Code Playgroud)

main()然后会找到该--script选项并迭代文件中的不同行,将每一行拆分成一个数组,然后我将在一个joptsimple实例中反射,然后将该数据传递给我的应用程序驱动程序.

joptsimple附带了一个具有解析方法的Parser ,但它只支持一个String …

java parsing command-line-arguments

27
推荐指数
4
解决办法
2万
查看次数

标签 统计

java ×2

command-line-arguments ×1

parsing ×1