我编写了一个可以获取环境变量值的函数。输入参数如下
$ {machine} / bin或$ {machine / bin}或$ {machine} / bin $ {path $ {OS}} / path 我需要检查以$ {}开头的值 我写了一个本质上有点递归的函数,但如果有人能为我查看代码并告诉我可以做得更好的话,我会很感激
private String replaceWithEnvironmentVariables(String specialChars) {
String result="";
boolean flag=true;
try{
result = specialChars;
String temp = "";
char loopBreaker = '}';
char dollarCheck = '$';
char slashCheck = '/';
int index = result.indexOf("{");
if (index == -1){
result = result.replaceAll("[{},$]", "");
return result;
}
for (int i = index; i < result.length(); i++) {
if(slashCheck==result.charAt(i))
break;
temp += result.charAt(i);
if(dollarCheck==result.charAt(i) || loopBreaker==result.charAt(i)){
break;
}
}
String sub = temp.replaceAll("[{},$/]", "");
if(sub==null || sub.length()==0){
sub="";
flag=false;
result = result.replace(temp, sub);
}
if(flag){
String returnSub = getEnvironmentVariableValue(sub);
result = result.replace(temp, returnSub);
}
}catch(NullPointerException nullPointer){
nullPointer.printStackTrace();
}catch(Exception except){
except.printStackTrace();
}
return replaceWithEnvironmentVariables(result);
}
PS:代码正在运行,但我只是想知道我在做什么来改进这个。如果这个问题似乎偏离主题,我非常抱歉。