将带有空格分隔符的字符串转换为数组。并输出这个数组,就像一个字符串
Posted
技术标签:
【中文标题】将带有空格分隔符的字符串转换为数组。并输出这个数组,就像一个字符串【英文标题】:Convert string with space-delimiters to array. And output this array, like a string 【发布时间】:2020-08-30 06:54:48 【问题描述】:我有一个问题,我已经在 bash/powershell 中解决了。 我需要将 java 的参数存储在一个变量中。
SET JAVA_ARGS="-Xms256m -Xmx2048m"
java %JAVA_ARGS% -jar my.jar
当我做这个的时候,我收到了
Invalid initial heap size: -Xms256m -Xmx2048m
很好,我尝试在 powershell 中解决这个问题
$JavaArgs="-Xms256m -Xmx2048m"
$JavaArgsArray=$JavaArgs.Split(" ")
java $JavaArgsArray -jar my.jar
在 bash 中,我这样做了
java_arguments="-Xms256m -Xmx2048m"
IFS=' ' read -r -a array_java_arguments <<< "$java_arguments"
java "$array_java_arguments [@]" -jar my.jar
但是,我需要在cmd中有版本,如何解决这个问题?请问你能帮帮我吗 ? 我需要从变量中获取数组,并且我必须在脚本中使用这个数组。没有分隔符,就像将字符串转换为数组一样,输出应该是相同的。 例如,如果我有:
ECHO %JAVA_ARGS%
输出
-Xms256m -Xmx2048m
我必须有类似的输出:
ECHO %ARRAY_JAVA_ARGS%
【问题讨论】:
尝试使用不同的分隔符分隔它们,例如;
或 ,
为什么要为变量分配引号?
【参考方案1】:
很容易。 我用过:
java "'%JAVA_ARGS%' -jar my.jar"
需要做的:
java "%JAVA_ARGS% -jar my.jar"
只是不要使用:
'%JAVA_ARGS%'
用途:
%JAVA_ARGS%
【讨论】:
以上是关于将带有空格分隔符的字符串转换为数组。并输出这个数组,就像一个字符串的主要内容,如果未能解决你的问题,请参考以下文章