int zusammenfügen NICHT addieren

  • Themenstarter Themenstarter gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

gast

Gast
hallo,

ist es möglich zwei int Werte zusammenzufügen und sie nicht addieren?

Bsp:

Code:
int a = 1
int b = 5

int c

// c soll rauskommen 15 sein;
// NICHT rauskommen soll 6;

// ist das möglich? Wie?

danke
 
die einfache Variante ist über Strings und dann parsen (Integer.parseInt())

wenn du nur diese einzelnen Ziffern hast, dann kannst du auch einfach und performant rechnen:
c = a*10+b;

wenn es beliebige Teilzahlen sein können, wird die Rechnen-Variante aufwendiger..
 
wenn du nur ne Ausgabe brauchst:

System.out.println(a+""+b);

ansonsten:

int c = Integer.parseInt(String.valueOf(a+""+b));
 
ich muss mich wohl ein bißchen konkreter fassen,
das ganze ist nämlich doch umfangreicher.

Also, es geht um HashTabellen.
Ich bekomme einen String Schlüssel übergeben, bestehend aus Zeichen jeglicher Art, mit dem ich dann in der HashFunktion rechnen muss.
Folglich dachte ich, dass ich jedes Zeichen in einen int Wert umwandle und mit denen rechne. (Ich bin mir nicht sicher, ob das nötig ist...)

Beispiel:

Code:
int b=0;

String Schlüssel = "AB";
	
for(int i=0; i<2; i++){
	b = (int)a.charAt(i);
    }

// A = 65
// B = 66

// AB soll sein 6566
// nicht 131

So, auf die Art hab ich mir das erstmal gedacht. Ich weiß nicht, ob das das Klügste ist.
Immerhin gehe ich von String zu int; und anscheinend muss ich dann auch wieder von int zu String, nur um die einzelnen Werte zusammenzufügen.

Weiß jmd ob ich gleich mit dem String Schlüssel rechnen kann? Wie?

Falls das nicht geht, hänge ich noch an dem Problem, die einzelnen Zahlenwerte aneinander zu fügen...erst int zu String, und das alles in der Schleife... :autsch:
Denkanstöße sind erwünscht.
 
ah ok, der editierte Beitrag von L-ectron-X hat mir geholfen.

DANKE!
 
verwende String#hashCode wenn du ne hashmap selber bauen willst

zurückrechnen brauchst du nicht
 
hallo nochmal,

neues Problem:

Wie oben bereits erwähnt, wandele ich einzelne Stringzeichen zu Integers um und füge diese dann zusammen.

Leider gerate ich dabei sehr schnell in den BigInteger bereich.
Allerdings scheint BigInteger parseInt(arg0) nicht zu kennen.

Code:
int val = 0;
int tmp = 0;

for(int i=0; i<5; i++){
   		tmp = (int)insertEntry.getKey().charAt(i);
    		val = Integer.parseInt(String.valueOf(val+""+tmp));
    	}

Also, wie gesagt: val bekommt zu große Zahlen überliefert und müsste eigentlich ein BigInteger sein.
Aber, die Variable nur auf BigInteger umstellen bringt's nicht; dann funktioniert mein code nicht mehr.

Kann mir jmd helfen?
 
du willst also ein BigInteger-Objekt erstellen,

was ist denn der normale Weg, um ein Objekt zu erstellen?,
da gibt es so einen Fachbegriff der mit K anfängt
 
??? K ?

Wieso BigInteger-Objekt?
Ist das nicht einfach eine Variablendeklaration, wie int, double etc. ?
 
nein, BigInteger ist eine Klasse, das andere primitive Datentypen, da gibts Unterschiede,
noch ein Tipp:
val = new ...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben