【问题标题】:How to replace a particular string in java?如何替换java中的特定字符串?
【发布时间】:2014-04-06 04:19:04
【问题描述】:

我有一个类似的 CSV 文件

Data
Dun&BradStreet
Dunkin & Donut

这里的数据是列的“标题”。

我使用的编码和替换为

 String encodedUrl = URLEncoder.encode(data[i], "UTF-8");
 String data = encodedUrl.replaceAll("%2B","+");

想要的结果

Data
Dun&BradStreet
Dunkin+%26+Donut

输出

 Data
 Dun%26BradStreet
 Dunkin+%26+Donut

如果存在“&”时没有空格,如何保留“&”? 任何帮助表示赞赏。提前致谢。

【问题讨论】:

  • 您是否要将这些信息放入 URL 中?如果是这样,& 应该按照ietf.org/rfc/rfc1738.txt 进行编码,除非您以特殊方式使用它(例如分隔名称-值对)。如果你不把它放在一个 URL 中,你为什么要在上面使用 URLEncoder.encode?​​span>
  • @lreeder :是的,我要输入一个 URL。所以这就是为什么我需要知道如何进行编码而不像第一种情况那样替换'&'?感谢您的帮助。
  • 如果你想把第一个值也放在 URL 中,它也需要编码。

标签: java regex regex-lookarounds


【解决方案1】:

如果&前后有一个或多个倍数空格,可以试试这个。

这里\\s+ 代表一个或多个倍空间。阅读有关Java Regex Pattern 的更多信息。

String str = data[i].replaceAll("\\s+&\\s+", "+%26+");

【讨论】:

    【解决方案2】:

    你可以像这样使用replace()

    String in = "Data\nDun&BradStreet\nDunkin & Donut";
    System.out.println(in.replace(" & ", "+%26+"));
    

    输出是“期望的结果”-

    Data
    Dun&BradStreet
    Dunkin+%26+Donut
    

    【讨论】:

      猜你喜欢
      • 2016-11-20
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多