【问题标题】:how to replace \ with \\ in a String that has a filepath in java [duplicate]java - 如何在具有Java文件路径的字符串中将\替换为\\ [重复]
【发布时间】:2015-12-23 07:20:14
【问题描述】:

使用浏览功能,我将文件路径放入String fileName

 FileItem fi =(FileItem)i.next();
    String fileName = fi.getName();

C:\Users\ramya_varakantham\Desktop\juno\Servlet\20-06-15.csv 是我进入文件名的路径。

我现在想用\\ 替换\,这样我的输出就会是C:\\Users\\ramya_varakantham\\Desktop\\juno\\Servlet\\20-06-15.csv

请告诉我怎么做。

【问题讨论】:

  • 你为什么需要这样做?
  • 你有没有尝试过(除了问这个问题)?简单的谷歌搜索“如何在 java 中用 \\ 替换 \”会给你一个答案。
  • Java 中有一个.replace(string, string) 方法,它不适合你吗?
  • Stackoverflow 不是免费的编码服务。

标签: java eclipse csv servlets


【解决方案1】:

如果你真的需要,可以使用 RegExp 或字符串替换方法。

【讨论】:

    【解决方案2】:

    试试这个(字符串替换):

    String s = "C:\\Users\\ramya_varakantham\\Desktop\\juno\\Servlet\\20-06-15.csv";
    s = s.replace("\\", "\\\\");
    System.out.println(s);
    

    或者这个(正则表达式替换)

    String s = "C:\\Users\\ramya_varakantham\\Desktop\\juno\\Servlet\\20-06-15.csv";
    s = s.replaceAll("\\\\", "\\\\\\\\");
    System.out.println(s);
    

    两种情况下的输出都是:

    C:\\Users\\ramya_varakantham\\Desktop\\juno\\Servlet\\20-06-15.csv
    

    【讨论】:

    • replaceAll - 我们真的需要正则表达式吗?
    • 我不怪他使用replaceAll。将 Oracle 称为 replaceAll 是一种奇怪的命名,而实际上它与 replace 的作用相同 - 只是使用正则表达式。实际上,我几个月前才发现 replace 应该用于替换 CharSequence 的(所有)出现而不是 replaceAll - 这个名字暗示了一些不同的东西。
    • 好吧,我们不必这样做,我们也可以使用这个:s.replace("\\", "\\\\"); 但谁在乎呢?结果是一样的,性能在这里不是问题。
    • @Würgspaß “但谁在乎呢?”好吧,熟悉 Java 中的正则表达式的人将能够阅读此代码,但为了简单起见,即使他们也可能更喜欢使用 replace("\\", "\\\\"),因为它对每个人都更容易阅读并且不易出错(它还允许当人们想要替换包含正则表达式元字符(如. + 等的字符串时,我们避免出现问题,只是因为他们看到其他人使用replaceAll)。换句话说,如果您不需要正则表达式支持,请首选replace 而不是replaceAll
    • 已编辑。我主要需要正则表达式替换,所以我更熟悉replaceAll
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 2012-09-30
    相关资源
    最近更新 更多