# int zusammenfügen NICHT addieren



## gast (1. Jul 2008)

hallo,

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

Bsp:


```
int a = 1
int b = 5

int c

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

// ist das möglich? Wie?
```

danke


----------



## SlaterB (1. Jul 2008)

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..


----------



## L-ectron-X (1. Jul 2008)

wenn du nur ne Ausgabe brauchst:

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

ansonsten:

int c = Integer.parseInt(String.valueOf(a+""+b));


----------



## gast (1. Jul 2008)

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:


```
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.


----------



## Gast (1. Jul 2008)

ah ok, der editierte Beitrag von L-ectron-X hat mir geholfen.

DANKE!


----------



## Gelöschtes Mitglied 5909 (1. Jul 2008)

verwende String#hashCode wenn du ne hashmap selber bauen willst

zurückrechnen brauchst du nicht


----------



## gast (3. Jul 2008)

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.


```
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?


----------



## SlaterB (3. Jul 2008)

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


----------



## Gast (3. Jul 2008)

??? K ?

Wieso BigInteger-Objekt?
Ist das nicht einfach eine Variablendeklaration, wie int, double etc. ?


----------



## SlaterB (3. Jul 2008)

nein, BigInteger ist eine Klasse, das andere primitive Datentypen, da gibts Unterschiede,
noch ein Tipp:
val = new ...


----------

