Avatar billede mik28 Seniormester
16. januar 2005 - 06:27 Der er 8 kommentarer og
1 løsning

Sætte returns ind i en String

Hej Eksperter,

Jeg har et problem med teksten på nogle knapper. Problemet er at teksten bliver for lang, så jeg skal have sat nogle returns ind. Jeg er kommet frem til at teksten max må være 16 karakterer lang, ellers skal der indsættes et return efter hver mellemrum.

Det må være noget med

String text = rs.getString("text");

if(text.length>15){
find første mellemrum;
indsæt return

detene og detandet skulle så gerne blive
dit
og
dat

}
Avatar billede mik28 Seniormester
16. januar 2005 - 06:29 #1
detene og detandet

skulle så gerne blive

detene
og
detandet
Avatar billede mik28 Seniormester
16. januar 2005 - 11:51 #2
Hvad er der galt med det her?

String gruppenavn = rs.getString("gruppenavn");
String gruppenavn1;

  if(gruppenavn.length()>17){
    gruppenavn1 = gruppenavn.replace(' ', '
');
    }
Avatar billede mik28 Seniormester
16. januar 2005 - 11:54 #3
var/tomcat/work/Catalina/localhost/bjorn/org/apache/jsp/start6_jsp.java:77: unclosed character literal
            gruppenavn1 = gruppenavn.replace(' ', '
');
Avatar billede mik28 Seniormester
16. januar 2005 - 11:59 #4
Sådan kan man åbentbart ikke gøre. Jeg tror jeg har forstået hvorfor, man kan kun ændre et tegn
Avatar billede mik28 Seniormester
16. januar 2005 - 12:18 #5
Man kan åbenbart gøre således. Jeg troede bare at strenge var uforanderlige :-)

String m = " ";
            String r = "
";
         
          while(rs.next()){
           
            String gruppenavn = rs.getString("gruppenavn");
           
            if(gruppenavn.length()>17){
   
            gruppenavn = gruppenavn.replaceAll(m, r);
            }
Avatar billede mik28 Seniormester
16. januar 2005 - 12:19 #6
Lukker igen
Avatar billede arne_v Ekspert
16. januar 2005 - 16:25 #7
Det er de også, men man skal forstå det rigtigt.

String s = "ABC";

giver:
  - et String objekt med værdien "ABC"
  - en reference s som peger på førnævnte objekt

s = s + "D";

vil:
  - lave et nyt String objekt med værdien "ABCD"
  - sætte s til at pege på det
  - markere det gamle String objekt som stadig indholder "ABC" for garbage collection
Avatar billede mik28 Seniormester
16. januar 2005 - 16:37 #8
Okay, så blev jeg så meget klogere ;-) Tak
Avatar billede arne_v Ekspert
16. januar 2005 - 16:42 #9
Og inden du spørger om ikke så man lige så godt kunen sige at Strings kunne ændres:

public void addD(String s) {
  s = s + "D";
}

...

s = "ABC"
addD(s);
System.out.println(s);

udskriver altså "ABC" og ikke "ABCD"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester