Android Bug? : String.substring (5) .replace (“”, “”) // leere Zeichenfolge
Hier ist mein Code:
String str = "just_a_string";
System.out.println("]" + str + "[");
System.out.println("]" + str.replace("", "") + "[");
System.out.println("]" + str.substring(5) + "[");
System.out.println("]" + str.substring(5).replace("", "") + "[");
System.out.println("]" + str.substring(3, 8) + "[");
System.out.println("]" + str.substring(3, 8).replace("", "") + "[");
System.out.println("]" + "sdajndan".substring(5).replace("", "") + "[");
und hier ist die Ausgabe
05-09 19:09:20.570: I/System.out(23801): ]just_a_string[
05-09 19:09:20.570: I/System.out(23801): ]just_a_string[
05-09 19:09:20.570: I/System.out(23801): ]a_string[
05-09 19:09:20.570: I/System.out(23801): ]a_s[ **
05-09 19:09:20.570: I/System.out(23801): ]t_a_s[
05-09 19:09:20.570: I/System.out(23801): ]t_[ **
05-09 19:09:20.570: I/System.out(23801): ][ **
Offensichtlich sind die mit ** markierten Zeilen unerwartet.
Dieses Problem tritt bei meinem Android-Handy A (LG P920 Optimus 3D, Android 2.3.3) auf. Während ich auf meinem Android-Handy B (LG E720 Optimus Chic, Android 2.2) teste, bleibt es stehen. Ich denke, es läuft in eine Endlosschleife.
Ich habe auf beiden Handys mit Java getestet1.5
und1.6
. Beide führen jeweils zum gleichen Verhalten.
Ich habe auch auf meiner gleichen Eclipse mit einem getestetJava Projekt, für1.5
, 1.6
, und1.7
. Alle ihre Ausgaben sind wie erwartet korrekt.
Ich frage mich, ob dies ein gerätespezifisches Problem bei der Implementierung sein könnteString.replace(“”, “”)
gegen die SaitenBacking-Array.
Könnten Sie mir bitte beim Testen Ihrer Geräte helfen?
Könnte mir bitte jemand den Android-Quellcode desString.replace(CharSequence, CharSequence)
Methode? (wie was indocjar)
Danke vielmals!
Ich habe den Code ein wenig geändert, damit er auch auf dem Android-Gerät angezeigt werden kann. (Es ist sowieso nur der gleiche Code).
Auf meinem Telefon A und meinem Telefon B getestet. Das Verhalten ist immer noch dasselbe, wie oben erwähnt.
package com.example.testprojectnew;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
String output_text = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String str = "just_a_string";
process("1]" + str + "[");
process("2]" + str.replace("", "") + "[");
process("3]" + str.substring(5) + "[");
process("4]" + str.substring(5).replace("", "") + "[");
process("5]" + str.substring(3, 8) + "[");
process("6]" + str.substring(3, 8).replace("", "") + "[");
process("7]" + "sdajndan".substring(5).replace("", "") + "[");
output_text = output_text.concat("\n\nLines (1 & 2), (3 & 4), (5 & 6), should be the same.");
((TextView) findViewById(R.id.a_string)).setText(output_text);
}
private void process(String str) {
System.out.println(str);
output_text = output_text.concat(str).concat("\n");
}
}