webForumDet fria alternativet

konkatenering

8 svar · 414 visningar · startad av Mc Fetto

Mc FettoMedlem sedan nov. 20022 355 inlägg
#1

Hej jag vill sätta ihop två String, har provat :

första_sträng.concat(andara_sträng);

Fungerar inte så bra tyvärr, har ngn tips på hur jag ska göra för att sätta ihop dem?

neox83Medlem sedan okt. 2000149 inlägg
#2

Hej
Concatmetoden retunerar en sträng så du kan använda den så här:
första_sträng = första_sträng.concat(andra_sträng);

Annars kan du ju alltid skriva:
första_sträng = första_sträng + andra_sträng;

leifenMedlem sedan juli 200173 inlägg
#3

Eller ännu bättre:

första_sträng += andra_sträng;

Mc FettoMedlem sedan nov. 20022 355 inlägg
#4

Det var smidigt att man enkelt kan plusa på bara :), man tackar!!!

LimeMedlem sedan sep. 2001961 inlägg
#5

Tänk på att strängkonkatenering med + skapar många stränginstanser som måste städas bort. Så fort man har fler än 4 strängar som +as på varandra och dessa tillsammans blir större än 256 tecken så vinner man på att skapa en StringBuffer,

/Lime

Sang-draxMedlem sedan juli 2002581 inlägg
#6

För övrigt heter det sammanfogning och inte konkatenering.

aasahMedlem sedan mars 20034 471 inlägg
#7

Lime skrev:

Tänk på att strängkonkatenering med + skapar många stränginstanser som måste städas bort. Så fort man har fler än 4 strängar som +as på varandra och dessa tillsammans blir större än 256 tecken så vinner man på att skapa en StringBuffer,/Lime

Det Lime nämner kan vara mycket väsentligt ur prestandasynpunkt. Ska mycket text läggas till är en StringBuffer alltid att föredra.

Mc FettoMedlem sedan nov. 20022 355 inlägg
#8

Men det är väl mer om man arbetar med filer och längre stycken i db eller? Om man endast jobbar med typ mindre inmatningar spelar det väl ingen roll?

aasahMedlem sedan mars 20034 471 inlägg
#9

Om det rör sig om att fixa en utmatning, ex:
System.out.println("i = " + i + ", j = " + j + .....);
så funkar plus hur bra som helst. Men om du t.ex. ska lägga till en massa mellanslag för att fixa strängar som är lika långa (fast de inte är det från början)... säg att du skriver ut strängar som ursprungligen är mellan 5-15 tecken, du ska skriva ut 10 sådana och före utskrift så har du en liten funktion:

private String fix(String str) {
   while (str.length() < 15)
      str = str + " ";
}

Då skapas i varje varv två nya strängar och då kan det börja märkas. Om du löser det med StringBuffer istället så har du hela tiden ETT objekt som du jobbar med och det går fortare.

127 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)