Java相当于Python中的os.path.expanduser / os.path.expandvars

3

Java里是否有类似Python中的os.path.expanduseros.path.expandvars (文档)的功能?

如果没有,是否有其他库可以实现这个功能?

2个回答

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


}///

1

我不知道有没有什么东西可以完全满足你的需求,但是你可以使用 System.getProperty("user.home") 来获取用户的主目录,并且你可以使用 System.getenv(String name) 来解析环境变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接