'n Abend zusammen.
Ich schreibe zur Zeit an einem kleinen Texteditor, bei dem die Textfläche ein JTextArea darstellt.
Ich will dem Ding jetzt eine Ersetzen-Funktion verpassen, die (je nach Benutzereinstellung) die Groß- und Kleinschreibung ignoriert. Die replace-Funktion von String scheidet demnach aus.
Hier mal die Funktion:
Die Funktion DialogManager.getInstance().getReplaceStrings() liefert ein Object-Array der Länge 3, das erste Element ist der String, der zu ersetzen ist, das zweite ist der neue String und das dritte ist ein Boolean-Objekt, das anzeigt, ob die Groß- und Kleinschreibung ignoriert werden soll oder nicht.
Meiner Meinung nach hängt das ganze in Zeile 24, nach dem Ersetzen ist nur noch Scheiße zu lesen. Die Zeilenendezeichen werden z.T. gelöscht, andere Zeichen zwischen den Indizes ebenfalls... Weiss jemand, wo der Hammer hängt ?
Ich schreibe zur Zeit an einem kleinen Texteditor, bei dem die Textfläche ein JTextArea darstellt.
Ich will dem Ding jetzt eine Ersetzen-Funktion verpassen, die (je nach Benutzereinstellung) die Groß- und Kleinschreibung ignoriert. Die replace-Funktion von String scheidet demnach aus.
Hier mal die Funktion:
Code:
private void replace() {
Object temp[] = DialogManager.getInstance().getReplaceStrings();
if (temp == null)
return;
String strings[] = new String[4];
for (int i = 0; i < 2; i++)
strings[i] = (String)temp[i];
strings[2] = editor.getText();
strings[3] = (String)temp[1];
if (((Boolean)temp[2]).booleanValue())
for (int i = 0; i < 3; i++)
strings[i] = strings[i].toLowerCase();
int searchIndex = -1;
int replaceCounter = 0;
while ((searchIndex = strings[2].indexOf(strings[0],searchIndex+1)) != -1) {
editor.replaceRange(strings[3],searchIndex,searchIndex+strings[0].length());
replaceCounter++;
}
editor.setCaretPosition(0);
if (replaceCounter == 0)
JOptionPane.showMessageDialog(null,SourceLoader.getInstance().getString("dialog.replace.failed.message"),
SourceLoader.getInstance().getString("dialog.replace.failed.title"),
JOptionPane.WARNING_MESSAGE);
else
JOptionPane.showMessageDialog(null,SourceLoader.getInstance().getString("dialog.replace.success.message1")+
String.valueOf(replaceCounter).concat(" ")+
SourceLoader.getInstance().getString("dialog.replace.success.message2"),
SourceLoader.getInstance().getString("dialog.replace.success.title"),
JOptionPane.INFORMATION_MESSAGE);
}
Die Funktion DialogManager.getInstance().getReplaceStrings() liefert ein Object-Array der Länge 3, das erste Element ist der String, der zu ersetzen ist, das zweite ist der neue String und das dritte ist ein Boolean-Objekt, das anzeigt, ob die Groß- und Kleinschreibung ignoriert werden soll oder nicht.
Meiner Meinung nach hängt das ganze in Zeile 24, nach dem Ersetzen ist nur noch Scheiße zu lesen. Die Zeilenendezeichen werden z.T. gelöscht, andere Zeichen zwischen den Indizes ebenfalls... Weiss jemand, wo der Hammer hängt ?