我是Java的新手所以请原谅我的经验不足。我有一个像下面的列(源),它有空字符串,我试图用Non-Disclosed替换它。
Source
Website
Drive-by
Realtor
Social Media
Billboard
Word of Mouth
Visitor
我试过了:
String replacedString = Source.replace("", "Non-Disclosed");
运行上面的代码片段后,所有内容都会被Non-Disclosed:
取代Non-Disclosed
Non-Disclosed
Non-Disclosed
............
我该如何解决这个问题?任何帮助将不胜感激。
答案 0 :(得分:3)
我认为你只需做:Source.replace("\n\n", "\nNon-Disclosed\n")
答案 1 :(得分:3)
我假设您的整个列都存储在一个字符串中。
在这种情况下,您可以使用^$
正则表达式来表示空行(使用MULTILINE标记(?m)
,这将允许^
和$
表示行的开头和结尾) 。
这种方法
\r
\n
\r\n
要在替换时使用正则表达式,我们可以使用replaceAll(regex, replacement)
方法
样本:
String text = "Source\r\n" +
"\r\n" +
"\r\n" +
"\r\n" +
"Website\r\n" +
"Drive-by\r\n" +
"Realtor\r\n" +
"Social Media\r\n" +
"\r\n" +
"Billboard\r\n" +
"\r\n" +
"Word of Mouth\r\n" +
"\r\n" +
"Visitor";
text = text.replaceAll("(?m)^$", "Non-Disclosed");
System.out.println(text);
输出:
Source
Non-Disclosed
Non-Disclosed
Non-Disclosed
Website
Drive-by
Realtor
Social Media
Non-Disclosed
Billboard
Non-Disclosed
Word of Mouth
Non-Disclosed
Visitor
答案 2 :(得分:1)
您可以使用
String replacedString = Source.trim().isEmpty() ? "Non-Disclosed" : Source;
仅替换“空白”字符串。