我希望将文本“REPLACEME”替换为我的StringBuffer符号。当我打印符号时,它是一个有效的字符串。当我打印查询时,它仍然具有文本REPLACEME而不是符号。为什么?
private String buildQuery(){
String query = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(REPLACEME)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=";
deserializeQuotes();
StringBuffer symbols = new StringBuffer();
for(int i = 0; i < quotes.size();i++){
if(i == (quotes.size()-1))
symbols.append("%22" + quotes.get(i).getSymbol() + "%22%"); //end with a quote
else
symbols.append("%22" + quotes.get(i).getSymbol() + "%22%2C");
}
System.out.println("***SYMBOLS***" + symbols.toString());
query.replaceAll("REPLACEME", symbols.toString());
return query;
}
更改
query.replaceAll("REPLACEME", symbols.toString());
至:
query = query.replaceAll("REPLACEME", symbols.toString());
Java中的字符串被设计为不可变的。
这就是为什么replaceAll()
不能替换当前字符串 中 的字符,因此它必须返回替换了字符的 新 字符串。
此外,如果你想简单地替换文字,不需要正则表达式的语法支持使用replace
替代replaceAll
(正则表达式语法的支持是这两种方法之间唯一的区别)。它是安全的情况下,你会想取代它可以包含正则表达式元字符像文字*
,+
,[
,]
和其他人。
问题内容: 我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。 这里有我想念的东西吗? 问题答案: 而当我调试此逻辑时,逻辑确实落入了句子。 是的,然后你放弃返回值。 Java中的字符串是不可变的-当你调用时,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要
我有一个作为字符串传入的句子,我正在对单词“and”进行替换,我想用“”替换它。它并没有用空白代替“和”。下面是我的逻辑示例。当我调试这个的时候,逻辑就落在句子里了。代替 这里有我遗漏的东西吗。
编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答问题。 我有这个练习。为什么不使用reappeAll?我有一个错误:字符串索引超出范围:1
我们使用的是 replaceAll 的 String 方法,我们不能在任何字符串中替换 { 。我们的例子: 尝试过: 误差如下: java.util.regex.PatternSyntaxException:发生非法重复 对任何想法持开放态度!也许有解决方法?!
问题内容: 一些背景信息:我们使用的是一个古老的基于Web的文档数据库系统,几乎完全由带有“正常”扩展名(.doc,.xls,.ppt)的MS Office文档组成。它们都是基于某种任意ID号(即1245.doc)命名的。我们正在切换到SharePoint,我需要重命名所有这些文件并将它们分类到文件夹中。我有一个包含各种信息的CSV文件(例如,哪个ID号对应于哪个文档的标题),因此我正在使用它来重
问题内容: 我有一个字符串,想简单地用string替换其中的所有换行符。 只需写一下就足够了: 我对它的正则表达式部分感到困惑。我换行需要两个斜杠吗?这样够好吗? 问题答案: 不要使用正则表达式! 。您只需要纯文本匹配即可替换。 用于将文字字符串替换为另一个: 请注意,它仍然可以替换 所有 出现的内容,区别是使用正则表达式进行搜索。