2017-03-25 4 views
-2

文字列が2つあり、文字列Aに文字列Bが含まれているかどうかを確認しようとしていますが、問題が発生しました。StringBuilder型のメソッド(String)が未定義です。このエラーは何ですか?どのように私はこれを修正するのですか?チェックする方法文字列にサブストリングが含まれていれば?

// 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 
+3

'text.toString()。contains(LINK)' –

+0

ありがとう – user352806

答えて

0
text.toString().contains(LINK) 
1

テキストはStringBuilder、ないStringです。 StringBuilderクラスがありません

if (text.toString().contains(LINK))

1

)(含まれています。

toString()を使用して文字列に変換します。

text.toString().contains(LINK) 
0

あなたはそれの文字列表現を取得するために、任意のJavaオブジェクト上のtoString()メソッドを使用することができますし、あなたもあなた自身のtoStringの実装を提供するために、任意のクラスでこのメソッドをオーバーライドすることができます。あなたのケースでは

text.toString().contains(LINK) 

作業を行います(ここでは、あなたがこのシーケンスのデータを表現する文字列を返すのStringBuilderのtoStringメソッドを使用している)

注:いないすべてのtoString戻ります特に配列と複雑なオブジェクトの期待される文字列

関連する問題