我得到两个字符串并尝试检查字符串A是否包含字符串B.但问题是我收到错误方法包含(字符串)未定义类型StringBuilder 。这个错误是什么?以及如何解决此问题?
// 1) get saved link
SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
String LINK = preferences.getString("random54", "");
// 2) get text from savedlinks.txt to string
String sdcard = Environment.getExternalStorageDirectory() + "/X ADB/";
File file = new File(sdcard, "savedlinks.txt");
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
} catch (IOException e) {
}
// 3) check if link already present in the .txt file or not
if (text.contains(LINK)) {
// DONT SAVE CAUSE DUPLICATE
} else {
// SAVE LINK IN HISTORY
答案 0 :(得分:2)
文字是StringBuilder
,而不是String
。
if (text.toString().contains(LINK))
答案 1 :(得分:1)
text.toString().contains(LINK)
答案 2 :(得分:1)
StringBuilder类没有contains()。
使用toString()首先转换为字符串。
text.toString().contains(LINK)
答案 3 :(得分:0)
你可以在任何java对象上使用toString()方法来获取它的字符串表示,你甚至可以在任何类中覆盖这个方法来提供你自己的toString实现。
在你的情况下:
text.toString().contains(LINK)
将完成工作(这里使用StringBuilder的toString方法,它返回表示此序列中数据的字符串)
注意:并非所有toString都返回一个预期的字符串,特别是对于数组和复杂的对象
答案 4 :(得分:0)
例如
如果我们想知道stringvalue是否包含Spotify网址:
boolean contains = stringvalue.toLowerCase().contains("https://open.spotify.com/");