Regexfrage

Status
Nicht offen für weitere Antworten.

EOB

Top Contributor
hallo, wie kann ich eigentlich in einem string alle doppelpunkte durch was andres ersetzen, ausser dem ersten? ich fummle damit schon ewig rum...jemand ne idee?

also sowas hier:


dsds:dsdsd:dskodkld:dskldksldksldksdl:gdfgdfgdg


soll zu sowas werden:


dsds:dsdsdXXXdskodkldXXXdskldksldksldksdlXXXgdfgdfgdg


danke :)
 

Der Müde Joe

Top Contributor
Code:
String regex = ":";

String[] split = myString.split(regex);

StringBuffer sb = new StringBuffer();
sb.append(split[0]);
sb.append(regex);


for(int i = 1 ; i < split.length ; i++) {
if(i ==split.length){
sb.append(split[i]);
}else{
sb.append(split[i]);
sb.append(erstetzer);
}
}

so mal ungetestet und rasch hingeschrieben
 

EOB

Top Contributor
hi, sone ähnliche lösung hatte ich eben auch..dachte, es geht gleich in einer zeile...besten dank :)
 

Der Müde Joe

Top Contributor
Code:
int ersterRegex = myString.indexOf(regex);
String beginn = myString.substring(0,ersterRexex + regex.length);
String end = myString.substring(ersterRexex + regex.length);
end.replace(regex, ertatz);
return beginn.concat(end);

wenig kürzer
 
G

Guest

Gast
Code:
myString.replaceAll(":", "erstatz);
myString.replaceFirst(erstatz,":");

noch kürzer ;-)
 

mikachu

Top Contributor
Anonymous hat gesagt.:
Code:
myString.replaceAll(":", "erstatz);
myString.replaceFirst(erstatz,":");

noch kürzer ;-)
würd ich mit vorsicht genießen...
Code:
String myString = "###abc:def:ghi:usw";
String replaceWith = "#";
myString = myString.replaceAll( ":", replaceWith );
myString = myString.replaceFirst( replaceWith, ":" );
//kommt nicht  zum gewünschten Ergebniss ;-)
this is a hint
 

mikachu

Top Contributor
Och menno, lass mich doch auch mal Tester spielen :D und die Leute auf möglicherweise potentielle Hinweise hinweisen ( :autsch: ), welche sie nicht beachtet haben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben