如何替换java中的特定字符串?

时间:2014-04-06 04:19:05

标签: java regex regex-lookarounds

我有一个像

这样的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

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

2 个答案:

答案 0 :(得分:1)

您可以使用replace()这样做,

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

输出是"期望的结果" -

Data
Dun&BradStreet
Dunkin+%26+Donut

答案 1 :(得分:1)

如果在&。

之前和之后有一次或多次空格,您可以试试这个

此处\\s+代表一次或多次空格。详细了解Java Regex Pattern

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