webForumDet fria alternativet

konkatenering

Javaur Java

8 svar · 414 visningar · startad av Mc Fetto

Medlem sedan nov. 20022 355 inlägg
Frågan#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?

Medlem 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;

Medlem sedan juli 200173 inlägg
#3

Eller ännu bättre:

första_sträng += andra_sträng;

Medlem sedan nov. 20022 355 inlägg
#4

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

Medlem 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

Medlem sedan juli 2002581 inlägg
#6

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

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

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

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

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