She*_*lam 6 java regex string android stringbuffer
我希望用我的StringBuffer符号替换文本"REPLACEME".当我打印符号时,它是一个有效的字符串.当我打印我的查询时,它仍然有文本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;
}
Run Code Online (Sandbox Code Playgroud)
Thi*_*Roy 18
更改
query.replaceAll("REPLACEME", symbols.toString());
Run Code Online (Sandbox Code Playgroud)
至:
query = query.replaceAll("REPLACEME", symbols.toString());
Run Code Online (Sandbox Code Playgroud)
Java中的字符串设计为不可变的.
这就是为什么replaceAll()不能替换当前字符串中的字符的原因,因此它必须返回一个替换了字符的新字符串.
另外如果你想简单地替换文字并且不需要使用正则表达式语法支持replace代替replaceAll(正则表达式语法支持只是这两种方法之间的区别).它是安全的情况下,你会想取代它可以包含正则表达式元字符像文字*,+,[,] 和其他人.
Java中的String对象是不可变的.replaceAll不会替换字符串中的数据,它会生成一个新的字符串.试试这个:
query = query.replaceAll("REPLACEME", symbols.toString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7102 次 |
| 最近记录: |