【问题标题】:Java System.getProperty("user.home")Java System.getProperty("user.home")
【发布时间】:2019-09-28 12:17:44
【问题描述】:

在这行代码中,我使用的是getProperty方法:

PrintWriter writer = new PrintWriter("~/4413/ctrl/geo.txt".replaceFirst("^~", System.getProperty("user.home")), "UTF-8");

结果是 C:UsersKamel\4413\ctrl\geo.txt,这不是我想要的,只要开头缺少一些 \ 分隔符。

我可以添加什么以使路径正确吗?

【问题讨论】:

    标签: java system


    【解决方案1】:

    引用System.getProperty("user.home")

    Matcher.quoteReplacement(System.getProperty("user.home"))
    

    问题在于replaceFirst 的两个参数都以特殊方式处理字符,因为您处理的是正则表达式,而不是文字字符串。

    【讨论】:

    • 或者只要我们可以假设~ 可能只出现在路径的开头.replace("~", System.getProperty("user.home")) 我们根本不需要担心正则表达式语法.
    • @Pshemo 或使用 startsWithsubstring 的东西。
    猜你喜欢
    • 2013-05-08
    • 2021-07-27
    • 2018-03-21
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    相关资源
    最近更新 更多