/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
hvor lang kan en String være (chars?)
Fra : Simon...


Dato : 20-11-02 22:27

Hej,

hvor mange tegn kan jeg putte i en string... kan jeg godt lave en monster
lang en (og hvor lang) ?

tak

mvh.Simon



 
 
M_abs (20-11-2002)
Kommentar
Fra : M_abs


Dato : 20-11-02 22:57

Du må ikke hænge mig op på det for jeg er ikke helt sikker, man burde kunne
fylde ligeså mange tegn i du vil dog med begrænset af den hukommelse som
java har adgang til.
Men du kan jo prøve følgende:

class test
{
public static void main(String x[])
{
String testLaengde = " ";
for (int i = 1; true ; i++)
{
System.out.print(i + " ");
testLaengde = testLaengde + testLaengde;
}
}
}

giv det en 10 minuters tid bare for at være sikker
det burde give en næsten uendelig dvs javas ram-buffer er fyldt.

"Simon..." <devnull@linux.org> skrev i en meddelelse
news:3ddbfe35$0$164$edfadb0f@dread12.news.tele.dk...
> Hej,
>
> hvor mange tegn kan jeg putte i en string... kan jeg godt lave en monster
> lang en (og hvor lang) ?
>
> tak
>
> mvh.Simon
>
>



Martin Møller Bæk (20-11-2002)
Kommentar
Fra : Martin Møller Bæk


Dato : 20-11-02 23:43

M_abs wrote:
> Men du kan jo prøve følgende:
>
> class test
> {
> public static void main(String x[])
> {
> String testLaengde = " ";
> for (int i = 1; true ; i++)
> {
> System.out.print(i + " ");
> testLaengde = testLaengde + testLaengde;
> }
> }
> }
> giv det en 10 minuters tid bare for at være sikker
> det burde give en næsten uendelig dvs javas ram-buffer er fyldt.


Martin Møller Bæk (20-11-2002)
Kommentar
Fra : Martin Møller Bæk


Dato : 20-11-02 23:49

M_abs wrote:
> Du må ikke hænge mig op på det for jeg er ikke helt sikker, man burde kunne
> fylde ligeså mange tegn i du vil dog med begrænset af den hukommelse som
> java har adgang til.
> Men du kan jo prøve følgende:
>
> class test
> {
> public static void main(String x[])
> {
> String testLaengde = " ";
> for (int i = 1; true ; i++)
> {
> System.out.print(i + " ");
> testLaengde = testLaengde + testLaengde;
> }
> }
> }
>
> giv det en 10 minuters tid bare for at være sikker
> det burde give en næsten uendelig dvs javas ram-buffer er fyldt.

Jeg prøvede lige ovenstående (blev nysgerrig). Den kører kun
til og med 24, hvorefter den giver en "java.lang.OutOfMemoryError",
da du hele tiden fordobler strengens længde. Dvs. den længste
streng man kan have består af 2^24 tegn. Men det er altså også
ret mange. Præcis: 16.777.216
Hvor vil man bruge en streng, der er over 16 mio tegn.
Så lang er mit brugernavn i hvert fald ikke

Mvh.
Martin MB


Thorbjoern Ravn Ande~ (21-11-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 21-11-02 08:53

Martin Møller Bæk <martin@nospam.aflame.dk> writes:

> da du hele tiden fordobler strengens længde. Dvs. den længste
> streng man kan have består af 2^24 tegn. Men det er altså også
> ret mange. Præcis: 16.777.216

Denne parameter sættes ved start af Java.

Microsofts version udmærker sig ved ikke at have en umiddelbar
begrænsning her.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn

M_abs (22-11-2002)
Kommentar
Fra : M_abs


Dato : 22-11-02 13:19

Det havde jeg ikke lidt tænkt på (var lidt træt)
prøve denne her i stedet *S*

class test
{
public static void main(String x[])
{
String testLaengde = " ";
for (int i = 1; true ; i++)
{
System.out.print(i + " ");
testLaengde = testLaengde + "";
}
}
}




Mikkel Bundgaard (22-11-2002)
Kommentar
Fra : Mikkel Bundgaard


Dato : 22-11-02 17:29

On Fri, 22 Nov 2002 13:19:19 +0100, M_abs wrote:
> class test
> {
> public static void main(String x[])
> {
> String testLaengde = " ";
> for (int i = 1; true ; i++)
> {
> System.out.print(i + " ");
> testLaengde = testLaengde + "";
// Skulle nok være
testLaengde = testLaengde + " ";
> }
> }
> }
Du mangler vist at gøre længden på stregen 1 større, hvis det var det du
ønskede
--
Mikkel Bundgaard
Student at IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum

M_abs (22-11-2002)
Kommentar
Fra : M_abs


Dato : 22-11-02 18:19

Ups, her er det så " ";
"Mikkel Bundgaard" <mikkelbu@teliamail.dk> skrev i en meddelelse
news:pan.2002.11.22.17.28.32.624539.2137@teliamail.dk...
> On Fri, 22 Nov 2002 13:19:19 +0100, M_abs wrote:
> > class test
> > {
> > public static void main(String x[])
> > {
> > String testLaengde = " ";
> > for (int i = 1; true ; i++)
> > {
> > System.out.print(i + " ");
> > testLaengde = testLaengde + "";
> // Skulle nok være
> testLaengde = testLaengde + " ";
> > }
> > }
> > }
> Du mangler vist at gøre længden på stregen 1 større, hvis det var det du
> ønskede
> --
> Mikkel Bundgaard
> Student at IT University of Copenhagen
> http://officehelp.gone.dk
> Codito, Ergo Sum



Mikkel Bundgaard (20-11-2002)
Kommentar
Fra : Mikkel Bundgaard


Dato : 20-11-02 23:15

On Wed, 20 Nov 2002 22:27:29 +0100, Simon... wrote:

> Hej,
>
> hvor mange tegn kan jeg putte i en string... kan jeg godt lave en
> monster lang en (og hvor lang) ?
Ifølge
http://www.javaspecialists.co.za/archive/Issue059.html
"Verrrrrry looooong Strings and other things"
så "Constant Strings must be shorter than 65536 characters.", men
artiklen siger vist ikke noget, om hvor lange strenge du kan lave .
--
Mikkel Bundgaard
Student at IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum

Frank Hahn (20-11-2002)
Kommentar
Fra : Frank Hahn


Dato : 20-11-02 23:24

"Simon..." <devnull@linux.org> skrev i en meddelelse
news:3ddbfe35$0$164$edfadb0f@dread12.news.tele.dk...
> Hej,
>
> hvor mange tegn kan jeg putte i en string... kan jeg godt lave en monster
> lang en (og hvor lang) ?

Der er ingen 'native' begrænsning på længden af en String.
Dog kan du løbe ind i en out-of-mem-exception, hvilket
skyldes den måde VM håndterer heap på.
Dette kan dog sættes med -Xmx<size> parameteren,
hvor <size> erstattes af den mængde heap du ønsker.
Din streng er så bare en del af denne mængde..

/Frank



Simon... (21-11-2002)
Kommentar
Fra : Simon...


Dato : 21-11-02 12:52

ok allesammen,
tak

mvh.Simon



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste