Java 中类似 Python 中 os.path.expanduser / os.path.expandvars 的方法
在Java中有没有类似于Python的 os.path.expanduser
和 os.path.expandvars
这样的功能?(可以查看文档)
如果没有,那有没有其他库可以实现这个功能呢?
2 个回答
1
我不知道有没有完全符合你需求的东西,但你可以用 System.getProperty("user.home")
来获取用户的主目录。此外,你还可以通过 System.getenv(String name) 来解析环境变量。
2
真可惜,Java 这个语言没有自带“电池”,意思是它没有内置很多方便的功能 :(
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Path {
static Pattern pv=Pattern.compile("\\$\\{(\\w+)\\}");
/*
* os.path.expanduser
*/
public static String expanduser(String path) {
String user=System.getProperty("user.home");
return path.replaceFirst("~", user);
}//expanduser
/*
* os.path.expandvars
*/
public static String expandvars(String path) {
String result=new String(path);
Matcher m=pv.matcher(path);
while(m.find()) {
String var=m.group(1);
String value=System.getenv(var);
if (value!=null)
result=result.replace("${"+var+"}", value);
}
return result;
}//expandvars
}///