Avatar billede muingaza Nybegynder
13. januar 2005 - 22:23 Der er 12 kommentarer og
2 løsninger

Hvordan bruger man StringTokenizer

Jeg vil gerne udskrive String a "Jeg gik mig over......". Men kun så der
står ca. 10 chars på hver linie. Lige nu udskriver den 11 liner med:

"Jeg gik mig".

Tror problemet er at jeg ikke kan få undersøgt resten af min streng efter at
de første tokens er sat sammen.

Håber nogen kan hjælpe!

import java.util.*;
public class Token {

    public static void main(String[] args) {

        String a = "Jeg gik mig over sø og land der mødte jeg en gammel
mand";
        int x = a.length();
        String temp = "";

        StringTokenizer p = new StringTokenizer(a);
        int i = 0;

        while(i<= p.countTokens())
        {

            while(temp.length()<= 10)
            {String first_line = p.nextToken();
            temp = temp + first_line + " ";


            }
            System.out.println(temp.trim());
            i++;
        }
    }
}
Avatar billede arne_v Ekspert
13. januar 2005 - 22:33 #1
Prøv:

import java.util.*;

public class Token {
    public static void main(String[] args) {
        String a = "Jeg gik mig over sø og land der mødte jeg en gammel mand";
        StringTokenizer p = new StringTokenizer(a, " ");
        String temp = p.nextToken();
        while (p.hasMoreTokens()) {
            String word = p.nextToken();
            if(temp.length() + 1 + word.length() > 10) {
                System.out.println(temp);
                temp = word;
            } else {
                temp = temp + " " + word;
            }
        }
        if(temp.length() > 0) {
            System.out.println(temp);
        }
    }
}
Avatar billede arne_v Ekspert
13. januar 2005 - 22:34 #2
(det skal lige modificeres for at kunne klare en streng uden tokens)
Avatar billede kalp Novice
13. januar 2005 - 22:41 #3
har ikke tested det her.. skrevet i boksen her på eksperten hehe.. men måske det virker


import java.util.StringTokenizer;

public class Test
{

  public static void main (String[] args)
  {
      int Tegn = 0;
      String linje, ord ="";
      StringTokenizer tokenizer;
     
      linje = "Jeg gik mig over sø og land der mødte jeg en gammel mand";

   
        tokenizer = new StringTokenizer (linje);

        while (tokenizer.hasMoreTokens())
        {
            ord += tokenizer.nextToken() + " ";
       
            Tegn += ord.length();
            if(Tegn > 10)
            {
              Tegn = 0;
              ord +="\n";
            }
        }
        System.out.println(ord);
  }
}
Avatar billede kalp Novice
13. januar 2005 - 22:47 #4
sorry... testede lige.. det her virker


import java.util.StringTokenizer;

public class Test
{

  public static void main (String[] args)
  {
      int Tegn = 0;
      String linje, ord ="", tmp ="";
      StringTokenizer tokenizer;
     
      linje = "Jeg gik mig over sø og land der mødte jeg en gammel mand";

   
        tokenizer = new StringTokenizer (linje);

        while (tokenizer.hasMoreTokens())
        {
            tmp = tokenizer.nextToken();
              Tegn += tmp.length();
            if(Tegn > 10)
            {
              Tegn = 0;
              ord +="\n";
            }
           
            ord += tmp + " ";
           
         
        }
        System.out.println(ord);
  }
}
Avatar billede kalp Novice
13. januar 2005 - 22:48 #5
Udskrift

Jeg gik mig
over sø og land
der mødte jeg en
gammel mand
Avatar billede muingaza Nybegynder
13. januar 2005 - 22:55 #6
Kanon mange tak for hjælpen!!
Avatar billede kalp Novice
13. januar 2005 - 22:57 #7
muingaza>> Ved du hvordan man lukker et spørgsmål? kan se du er ny. (og hvilken kode eksempel anvendte du?)
Avatar billede arne_v Ekspert
13. januar 2005 - 22:58 #8
Min version outputter:

Jeg gik
mig over
sø og land
der mødte
jeg en
gammel
mand

forskellen er at jeg outputter de største linier <= 10 tegn mens kalps
outputter de mindste linier > 10 tegn.
Avatar billede muingaza Nybegynder
13. januar 2005 - 23:06 #9
Til kalp:

Lukker hvad betyder det? Jeg brugte arne v kode eksempel
Avatar billede arne_v Ekspert
13. januar 2005 - 23:08 #10
så vil jeg ligge et svar
Avatar billede muingaza Nybegynder
13. januar 2005 - 23:10 #11
Fuck nu er jeg ikke med...til venstre har jeg kalp og arne_v stående skal jeg så vælge arne_v og så trykke på Accepter for at give ham point?
Avatar billede arne_v Ekspert
13. januar 2005 - 23:11 #12
Ja.

Eller markere begge navne og klik accepter (så deles pointsene).
Avatar billede muingaza Nybegynder
13. januar 2005 - 23:12 #13
I er begge nogle guttermænd så i skal have noget begge to ;-)
Avatar billede kalp Novice
13. januar 2005 - 23:26 #14
sorry var lige i gang med at læse noget igennem:)
men godt det lykkedes herinde:)
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