Dann muss es wohl an meinem Code an einer anderen Stelle hapern.
Habe hier die entsprechende Stelle so zusammengeschrieben, dass sie sich kompilieren lässt
[code=Java]import java.util.ArrayList;
public class Example {
private static ArrayList<String> numbers;
public static void main(String[] args)
{
numbers = new ArrayList<String>();
numbers.add("123");
numbers.add("456");
undo();
System.out.println(numbers);
undo();
System.out.println(numbers);
undo();
System.out.println(numbers);
}
public static void undo() {
Integer index = numbers.size();
if (index > 0) index--;
String number = numbers.get(index);
if (number.length() > 0)
{
number = number.substring(0, number.length()-1);
numbers.set(index, number);
if (number.length() == 0)
{
numbers.remove(index);
}
}
else
{
numbers.remove(index);
}
}
}
[/code]
Die Ausgabe die generiert wird:
[CODE][123, 45]
[123, 4]
[123, ]
[/CODE]
Ich habe in Zeile 31 bereits testweise eine Ausgabe geschrieben, um zu prüfen, dass der remove() Befehl wirklich ausgeführt wird. Er wird. Trotzdem bekomme ich diese Ausgabe.
(Ich arbeite im Standard Eclipse ohne irgendwelche plugins etc, Java-SE 1.6)