String replace() Elemente tauschen

GAZ

GAZ

Mitglied
Hallo zusammen,

ich schreibe gerade ein Programm, bei der ich eine komplementär DNA mit Hilfe einer der replace Methode erstellen soll.
Mein Problem ist gerade das ich meine eigenen Schritte so immer wieder rückgängig mache.
Übergebe ich zum Beispiel "ACTG" spuckt mein Programm mir "ACAC" aus, anstatt wie gewünscht "TGAC", ich habe gerade irgendwie einen Hänger im Kopf und kriege das Problem nicht gelöst, wo das Problem liegt ist mir allerdings klar.
 

Anhänge

  • Screenshot 2020-12-17 17.48.16.png
    Screenshot 2020-12-17 17.48.16.png
    40,5 KB · Aufrufe: 35
Beste Antwort
kneitzel
Das kann man natürlich mit replace machen, ist aber etwas umständlich: Du ersetzt dazu erstmal A durch a, dann T durch A und anschließend a durch T. Das gleiche Spiel mit den anderen Buchstaben.
Die Idee mit großen und kleinen Buchstaben hatte ich auch - aber da hätte ich beim Ersetzen generell gewandelt um dann am Ende ein toUpper() aufzurufen. Also A -> t, C ->g, T->a, G -> c ...

Aber man kann statt ersetzen sich ein Array von Zeichen besorgen, dann die Zeichen einmal durchlaufen und dann das Array wieder zu einem String machen ...
H

httpdigest

Top Contributor
Einfach nur mit String.replace(char, char) funktioniert das auch nicht. Du musst einmal über den String rüberrennen und _alle_ Zeichen ersetzen, nicht viermal über den String und jeweils ein einzelnes Zeichen ersetzen.
 
kneitzel

kneitzel

Top Contributor
Ja, Du hast das Problem schon richtig erkannt.

Erste Frage: Musst Du die replace Methode nutzen?

Also ich sehe zwei Möglichkeiten:
a) statt der Replace Methode könntest Du Dir überlegen, wie DU es mit Stift und Papier machen würdest. Dann würde da ein Algorithmus raus kommen, der wohl ohne replace auskommt.
b) du könntest dir überlegen, wie Du die replace Aufrufe ändern könntest, damit die bereits ersetzten Zeichen nicht noch einmal ersetzt werden. (Das läuft dann auf noch mehr Veränderungen hinaus - sehe ich nicht als zielführend an, aber wenn die replace Methode gefordert wird, dann würde das dennoch gehen ...)
 
GAZ

GAZ

Mitglied
Ja, Du hast das Problem schon richtig erkannt.

Erste Frage: Musst Du die replace Methode nutzen?

Also ich sehe zwei Möglichkeiten:
a) statt der Replace Methode könntest Du Dir überlegen, wie DU es mit Stift und Papier machen würdest. Dann würde da ein Algorithmus raus kommen, der wohl ohne replace auskommt.
b) du könntest dir überlegen, wie Du die replace Aufrufe ändern könntest, damit die bereits ersetzten Zeichen nicht noch einmal ersetzt werden. (Das läuft dann auf noch mehr Veränderungen hinaus - sehe ich nicht als zielführend an, aber wenn die replace Methode gefordert wird, dann würde das dennoch gehen ...)
Ist nicht unbedingt gefordert, wird aber als Hinweis angegeben, dass es damit gehen würde, deswegen wollte ich es auch damit versuchen! Wenn's dadurch aber nur unnötig kompliziert wird versuche ich es erstmal auf andere Weise. Vielen Dank schonmal!
 

Anhänge

  • Screenshot.PNG
    Screenshot.PNG
    9 KB · Aufrufe: 18
mihe7

mihe7

Top Contributor
Das kann man natürlich mit replace machen, ist aber etwas umständlich: Du ersetzt dazu erstmal A durch a, dann T durch A und anschließend a durch T. Das gleiche Spiel mit den anderen Buchstaben.

Oops, @kneitzel hat da den Wink schon gegeben, sorry.
 
kneitzel

kneitzel

Top Contributor
Das kann man natürlich mit replace machen, ist aber etwas umständlich: Du ersetzt dazu erstmal A durch a, dann T durch A und anschließend a durch T. Das gleiche Spiel mit den anderen Buchstaben.
Die Idee mit großen und kleinen Buchstaben hatte ich auch - aber da hätte ich beim Ersetzen generell gewandelt um dann am Ende ein toUpper() aufzurufen. Also A -> t, C ->g, T->a, G -> c ...

Aber man kann statt ersetzen sich ein Array von Zeichen besorgen, dann die Zeichen einmal durchlaufen und dann das Array wieder zu einem String machen ...
 
Beste Antwort
mihe7

mihe7

Top Contributor
Das wäre natürlich die optimierte Variante. Ich bin beim Swap stehen geblieben :)

@GAZ, setz lieber die von @httpdigest und @kneitzel genannte Variante um. Die ist wesentlich effizienter, außerdem sollst Du ja auch noch was zu tun haben.
 
GAZ

GAZ

Mitglied
Die Idee mit großen und kleinen Buchstaben hatte ich auch - aber da hätte ich beim Ersetzen generell gewandelt um dann am Ende ein toUpper() aufzurufen. Also A -> t, C ->g, T->a, G -> c ...

Aber man kann statt ersetzen sich ein Array von Zeichen besorgen, dann die Zeichen einmal durchlaufen und dann das Array wieder zu einem String machen ...
ich werd mal beide Ansätze durchgehen und sehen was mir besser liegt, vielen Dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
V String replace ? Java Basics - Anfänger-Themen 6
S string.replace funktioniert nicht Java Basics - Anfänger-Themen 10
U String.replace mit Umlauten Java Basics - Anfänger-Themen 14
R String Replace für JUnit Java Basics - Anfänger-Themen 19
0 String split und replace geht nicht Java Basics - Anfänger-Themen 17
A mehrere replace in einem string Java Basics - Anfänger-Themen 3
S String filtern mit replace -> Problem Java Basics - Anfänger-Themen 6
M String.replace Java Basics - Anfänger-Themen 2
M replace html string Java Basics - Anfänger-Themen 3
G String.replace Java Basics - Anfänger-Themen 3
D String mit replace bearbeiten Java Basics - Anfänger-Themen 2
G string.replace und charset Java Basics - Anfänger-Themen 2
D Probleme mit der String Methode replace() Java Basics - Anfänger-Themen 4
N String.replace brauch mal Hilfe Java Basics - Anfänger-Themen 2
R String replace nicht verwenden.alternative gesucht Java Basics - Anfänger-Themen 5
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
AlexVo String zu Java Anweisung getString("*** java code ***") Java Basics - Anfänger-Themen 19
O String mit Character vergleichen Java Basics - Anfänger-Themen 3
I String.split regex Frage Java Basics - Anfänger-Themen 2
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
tobikoch String x= null Bedeutung Java Basics - Anfänger-Themen 9
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
T Zeichen im String verschiebe Java Basics - Anfänger-Themen 9
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
P Datentypen Array und String Java Basics - Anfänger-Themen 2
javapingu Hex String zu long Java Basics - Anfänger-Themen 2
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
O if Abfrage erkennt String nicht Java Basics - Anfänger-Themen 1
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
O Datentypen String teilen Java Basics - Anfänger-Themen 5
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
B String to int Java Basics - Anfänger-Themen 11
D String value change listener Java Basics - Anfänger-Themen 2
I Wo am besten eine String Konstante initialisieren? Java Basics - Anfänger-Themen 5
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
B String to Float Java Basics - Anfänger-Themen 27
B Map<String, FilterMeta, wie Wert bekommen? Java Basics - Anfänger-Themen 4
Dimax stream in string[] speichern Java Basics - Anfänger-Themen 6
Dimax String Probleme Java Basics - Anfänger-Themen 12
H Wie wird ein String intern gespeichert? Java Basics - Anfänger-Themen 10
C String auf Dualzahl überprüfen Java Basics - Anfänger-Themen 5
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
A final String verrechnen Java Basics - Anfänger-Themen 2
N String N-Gramme mit Stream erstellen Java Basics - Anfänger-Themen 7
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
Z Methode zum Heraufinden von Anagrammen ohne Java API, Ausnahme String Java Basics - Anfänger-Themen 14
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
J Characters als String zusammenfassen Java Basics - Anfänger-Themen 3
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
F String auf E-Mail kürzen Java Basics - Anfänger-Themen 11
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
S String index out of range Java Basics - Anfänger-Themen 11
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
V int zu Integer und String Java Basics - Anfänger-Themen 6
X Erste Schritte String: Alle doppelten Leerzeilen entfernen Java Basics - Anfänger-Themen 21
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
P Datenspeichern im String Java Basics - Anfänger-Themen 5
J String wird in GUI falsch ausgegeben Java Basics - Anfänger-Themen 10
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
S String umwandeln Java Basics - Anfänger-Themen 6
S Ersetzen eines Asterix in einem String Java Basics - Anfänger-Themen 8
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
R String vergleichen Java Basics - Anfänger-Themen 59
L String zerlegen & elemente hinzufügen Java Basics - Anfänger-Themen 5
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
Curtis_MC 2dimensionales Array als String ausgeben Java Basics - Anfänger-Themen 2
J Zeichen im String zählen Java Basics - Anfänger-Themen 3
J erstes Vorkommen eines Chars aus einem String entfernen Java Basics - Anfänger-Themen 3
S String richtig formatieren Java Basics - Anfänger-Themen 2
M String außerhalb der main-Methode Java Basics - Anfänger-Themen 4
N Fehler bei string Attribut! Java Basics - Anfänger-Themen 18
I String Repraesentation eines Objekts Java Basics - Anfänger-Themen 1
S Gesamten String in einer Zeile ausgeben Java Basics - Anfänger-Themen 2
J Umwandlung String zu ASCII-Wert und anders Java Basics - Anfänger-Themen 17
L String als ungültig deklarieren Java Basics - Anfänger-Themen 2
I char Array to String Java Basics - Anfänger-Themen 3
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
S String split Java Basics - Anfänger-Themen 12
B String vergleich Java Basics - Anfänger-Themen 3
C Java String Methode Java Basics - Anfänger-Themen 6
G String mit mehreren Attributen aufteilen Java Basics - Anfänger-Themen 6
Dimax String Split Java Basics - Anfänger-Themen 2
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
J String in Datei schreiben Java Basics - Anfänger-Themen 4
B String zu einem bestehenden String hinzufügen Java Basics - Anfänger-Themen 9
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
N Wie kann ich einen String wieder zusammensetzen und ausgeben lassen? Java Basics - Anfänger-Themen 9
T String an Methode zurückgeben Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben