Ich schreibe eine Anwendung, die eine auf einem Server gehostete Datei betrachtet und wenn sie sich ändert, lädt sie eine Webansicht neu. Dies wird verwendet, um mehrere Webseiten auf Geräten zu replizieren.Wie kann ich zwei Zeichenfolgen, die für URLs verwendet werden, vergleichen?
stelle ich eine anfängliche URL:
private String originalURL;
private String newURL;
Dann die man definieren auf onCreate
originalURL = "https://www.buzzfeed.com/sallytamarkin/total-body-workouts#.moYPngWVWy";
ich eine Asynchron-Aufgabe auf einem Timer laufen dann verwenden:
private static String getUrlContents(String theUrl)
{
StringBuilder content = new StringBuilder();
// many of these calls can throw exceptions, so i've just
// wrapped them all in one try/catch statement.
try
{
// create a url object
URL url = new URL(theUrl);
// create a urlconnection object
URLConnection urlConnection = url.openConnection();
// wrap the urlconnection in a bufferedreader
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
// read from the urlconnection via the bufferedreader
while ((line = bufferedReader.readLine()) != null)
{
content.append(line + "\n");
}
bufferedReader.close();
}
catch(Exception e)
{
e.printStackTrace();
}
return content.toString();
}
private class BackgroundTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
// perform your network logic here
String output = getUrlContents("http://52.30.226.234/url.txt");
System.out.println("output is " + output);
newURL = output;
return "YourResult";
}
@Override
protected void onPostExecute(String result) {
// Update your screen with the results.
}
}
Wenn ich versuche, die beiden Strings zu vergleichen, werden sie immer als unterschiedlich bewertet. Ich habe versucht, match(), equals() und equalsIgnoreCase(). Dies ist der Code, den ich verwende
if ((originalURL.equals(newURL))==true) {
System.out.println("SAME");
} else {
System.out.println("NOT SAME");
}
}
Ich habe dies auch mit zwei zuvor definierten Strings getestet und es funktioniert gut.
Ich kann nur denken, das ist wegen Sonderzeichen, aber habe versucht, einige Fixes zu entfernen, Sonderzeichen und das hat auch nicht funktioniert.
Bitte helfen!
Was ist der Inhalt der URL, die Sie herunterladen? Wenn es sich nicht um eine URL handelt, sollte Ihr Variablenname aussagekräftiger sein. –
Haben Sie versucht, original_URL.trim(). Equals (newURL.trim()) '? –
Ich glaube, deine originalUrl hat am Ende keine '\ n' (neue Zeile). Also warum stellst du es in newUrl: 'content.append (line +" \ n ");' –