![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 16.09.2005
Beiträge: 12
|
Moin,
ich will eigentlich nur genau das, was replaceAll macht nur ohne dem Regex. Und da ich bis dato nirgends was gefunden hab, was mir nen String komplett escapet stöhren die ( und ) im Namen und ich kann auch nicht sicher sein, dass nur ( und ) vorkommen. |
|
|
|
|
|
Nach oben #2 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
|
__________________
Patrick Gotthardts Weblog. |
|
|
|
|
|
Nach oben #4 |
|
Gast
Beiträge: n/a
|
Hi
Meinst du sowas? Code:
public static String replace(String s,String remove, String replace) {
String in = s;
String out = "";
if (remove.length()>0) {
while ((in.indexOf(remove) > -1) && (in.length() > 0)) {
int cut1 = in.indexOf(remove);
int cut2 = cut1 + remove.length();
out += in.substring(0,cut1) + replace;
in = in.substring(cut2,in.length());
}
}
out += in;
return out;
}
|
|
|
|
Nach oben #5 |
|
Neuer Benutzer
Registriert seit: 16.09.2005
Beiträge: 12
|
Soweit ich das jetzt ma schnell überlesen hab, schneidet es immer einen teil aus in und hängts in out rein bis in leer is und ersetzt es wärenddessen?
Ja sowas such ich allerdings hätt ich halt eher auf ne fertige Methode zurückgegriffen als das selbst zu implementieren. Sollts dafür nix anders geben tx@lord sieht gut aus die implementierung |
|
|
|
|
|
Nach oben #6 |
|
Neuer Benutzer
Registriert seit: 14.10.2004
Beiträge: 25
|
Also ich hätte das so gemacht:
Code:
public static String replace(String in,String remove, String replace) {
if (in==null || remove==null || remove.length()==0) return in;
StringBuffer sb = new StringBuffer();
int oldIndex = 0;
int newIndex = 0;
int remLength = remove.length();
while ( (newIndex = in.indexOf(remove,oldIndex)) > -1) {
//copy from last to new appearance
sb.append(in.substring(oldIndex,newIndex));
sb.append(replace);
//set old index to end of last apperance.
oldIndex = newIndex + remLength;
}
int inLength = in.length();
//add part after last appearance of string to remove
if(oldIndex<inLength) sb.append(in.substring(oldIndex,inLength));
return sb.toString();
}
Ich habe das ziemlich schnell aufgeschrieben, wenn da also Fehler drin sind bitte melden Gruß, Max |
|
|
|
|
|
Nach oben #7 |
|
Neuer Benutzer
Registriert seit: 16.09.2005
Beiträge: 12
|
Jo deins sollte wegen dem Stringbuffer schneller sein hab mir aber wegen meinem Anwendungsfall das ganze nochmal bisl anders implementiert:
Code:
public static String replaceMe(String s, String find, String replace){
String in = s;
StringBuffer out = new StringBuffer();
boolean isInTag = false;
for(int i = 0; i < in.length(); i++){
if(isInTag){
if(s.charAt(i) == '<' && s.substring(i, i + 4).equals("</a>")){
i += 3;
out.append("</a>");
isInTag = false;
}else{
out.append(s.charAt(i));
}
}else{
if(s.charAt(i) == '<' && s.charAt(i + 1) == 'a' && s.charAt(i + 2) == ' '){
isInTag = true;
out.append(s.charAt(i));
}else if(s.charAt(i) == find.charAt(0) && s.substring(i, i + find.length()).equals(find)){
out.append(replace);
i += find.length() - 1;
}else{
out.append(s.charAt(i));
}
}
}
return out.toString();
}
Ach ja es soll halt alles in <a></a> nich ersetzten :> |
|
|
|
|
|
Nach oben #8 |
|
Neuer Benutzer
Registriert seit: 14.10.2004
Beiträge: 25
|
Ich habe auch mal eine modifizierte Variante gebaut, die das vorherige replace benutzt und auch so ähnlich aufgebaut ist. Sie scheint trotz den replace-aufrufen recht flott unterwegs zu sein. Allerdings produziert sie mehr Garbage
Code:
public static String replace2(String in,String find, String replace){
StringBuffer sb = new StringBuffer();
int oldIndex = 0;
int newIndex = 0;
while ( (newIndex = in.indexOf("<a ",oldIndex)) > -1) {
sb.append(replace(in.substring(oldIndex,newIndex),find,replace));
oldIndex = newIndex;
newIndex = in.indexOf("</a>",newIndex+3)+4;
sb.append(in.substring(oldIndex,newIndex));
oldIndex = newIndex;
}
int inLength = in.length();
if( oldIndex<inLength)
sb.append(replace(in.substring(oldIndex,inLength),find,replace));
return sb.toString();
}
|
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Regex Hilfe gesucht | ljungi | PHP-Programmierung | 15 | 05.11.2006 15:41 |
| Suche MP3-Player mit "spezieller" Funktion | Mirod | Gesuche | 4 | 10.07.2006 09:51 |
| Agent Ransack - Suchen mit Regex und mehr | robo47 | Plauderecke | 0 | 09.01.2006 21:18 |
| Suche programmieren | Bookworm | PHP-Programmierung | 29 | 09.12.2005 13:37 |
| Suche Icons | Chr!s | Plauderecke | 6 | 17.09.2005 11:50 |