Java 中类似 Python 中 os.path.expanduser / os.path.expandvars 的方法

3 投票
2 回答
1136 浏览
提问于 2025-04-16 22:09

在Java中有没有类似于Python的 os.path.expanduseros.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


}///

撰写回答