Ich versuche, in einem String ein -
zwischen allen ungeraden Zahlen zu platzieren. Wenn also ein String als Hel776o
übergeben wird, sollte er Hel7-76o
ausgeben. Bindestriche sollten nur zwischen zwei aufeinanderfolgenden ungeraden Zahlen stehen.Java Stelle eines „-“ zwischen ungeraden Zahlen in einer Zeichenfolge mit Regex
Ich versuche, dies über String.replaceAll in einer Zeile() zu tun
Ich habe die folgende Zeile:
return str.replaceAll(".*([13579])([13579]).*","$1-$2");
Wenn jede ungerade Zahl ist, durch eine ungerade Zahl Platz folgte ein -
zwischen Sie. Aber es ersetzt alles bis auf das letzte Spiel destruktiv.
Wenn ich zB "999477"
übergebe, wird 7-7
anstelle von 9-9-947-7
ausgegeben. Werden mehr Gruppierungen benötigt, also ersetze ich nicht alles außer den Spielen?
Ich habe das schon mit einem traditionellen Schleife durch die einzelne Zeichen in Zeichenfolge aber wollte es in einem Einzeiler mit Regex tun ersetzen.
Edit: Ich würde sagen, ich meine return str.replaceAll(".*([13579])([13579]).*","$0-$1");
und nicht $1
und $2
Nehmen Sie die '. *' da dies alles vor den letzten zwei ungeraden Ziffern fallen lässt. –