Java类似于Python os.path.expanduser / os.path.expandvars

时间:2011-07-23 23:22:18

标签: java python

Java中有os.path.expanduseros.path.expandvarsdocumentation)这样的东西吗?

如果没有,是否有某个库可以执行此操作?

2 个答案:

答案 0 :(得分:0)

我不知道哪些内容完全符合您的要求,但您可以使用System.getProperty("user.home")获取用户的主目录,并且可以使用System.getenv(String name)解析环境变量。

答案 1 :(得分:0)

遗憾的是,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


}///