Java Binärcode invertieren?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es gibt ne replace Methode für Strings. Dieser Methode musst du einfach nur ein Zeichen übergeben und das Zeichen angeben, durch das ersetzt werden soll.

z.B.

 String binaerzahl="1011010";

 String invertiert=binaerzahl.replace("0", "2").replace("1","0").replace("2", "1");

 System.out.println(invertiert);

Woher ich das weiß:Studium / Ausbildung – Staatlich geprüfter Informatiker

Dultus, UserMod Light   13.10.2021, 08:21
binaerzahl.replace("0","1").replace("1","0");

Das läuft leider nicht - du ersetzt alle 0en durch 1en und dann wieder zu 0en. Am Schluss hast du dann in diesem Falle nur noch "0000000".

2
DerMusiker10111  13.10.2021, 08:23
@Dultus, UserMod Light

Hab ich gerade auch gemerkt als ich es laufen lies. Man muss zuerst die 0 durch 2 ersetzen, dann die 1 durch 0 und am Ende die 2 durch 1 dann passt es.

1
string strNeueKette = "";
foreach (char bin in input)
  if (bin == '0')
    strNeueKette += "1";
  else if (bin == '1')
    strNeueKette += "0";

So würde ich es machen.

Also via Foreach durch deinen Bitcode iterieren und dann das Zeichen umdrehen und zu einem neuen String hinzufügen.

LG

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

Wenn ich dein Vorhaben richtig verstehe würde ich da einfach ein simples replaces rüber jagen. Erstmal können wir nicht 1 durch 0 replacen, weil wir dann nur noch 0 haben und keine 1 mehr. Also würde ich 1 zu 2 machen oder so, dann 0 zu 1 und dann 2 zu 0. Dann wären alle nullen eine 1 und umgekehrt