Avatar billede missmalik Nybegynder
26. januar 2005 - 21:31 Der er 15 kommentarer og
1 løsning

Statiske metoder

Hej

Jeg sidder med en opgave, hvor jeg skal som skal lave en metode, som retunerer et antal af sætninger...
Hvor i punktum indikerer, hvornår en sætning er slut

f.eks.

final String boks="Hej med dig. Jeg kan godt lide java "

jeg er meget usikker på, hvordan jeg skal gribe dette on. Jeg tror jeg skal tage udgangspunkt i klassen String. Har kigget lidt på metoderne, men kan ikke finde den rigtige
Avatar billede arne_v Ekspert
26. januar 2005 - 21:33 #1
En for løkke som løber strengen igennem og tæller antallet af punktummer ?
Avatar billede kalp Novice
26. januar 2005 - 21:34 #2
Du skal kigge på StringTokenizer klassen og ikke string klassen
Avatar billede arne_v Ekspert
26. januar 2005 - 21:36 #3
public class Paragraphs {
    public static int count(String s) {
        int res = 0;
        for(int i = 0; i < s.length(); i++) {
            if(s.charAt(i) == '.') {
                res++;
            }
        }
        return res;
    }
    public static void main(String[] args) {
        System.out.println(count("Hej med dig. Jeg kan godt lide java."));
    }
}

må være letforståeligt
Avatar billede kalp Novice
26. januar 2005 - 21:37 #4
mit eksempel

package mypackage1;
import java.util.StringTokenizer;

public class Main
{
  public Main()
  {
 
String test = "hejsa jeg hedder. hest med boller i karry";
String udskrift="";
StringTokenizer mintekst = new StringTokenizer(test, ".");

while(mintekst.hasMoreTokens())
{
  udskrift += mintekst.nextToken()+"\n";
}
  System.out.println(udskrift);
  }

  public static void main(String[] args)
  {
    Main main = new Main();
  }
}
Avatar billede missmalik Nybegynder
26. januar 2005 - 21:37 #5
HMM, vis sætningerne skal retuneres i en given tegnstreng...
Avatar billede arne_v Ekspert
26. januar 2005 - 21:37 #6
Du kan også bruge StringTokenizer eller bare String split.

Og de giver betydeligt mindre kode.

Men måske også lidt mere kryptisk kode.
Avatar billede arne_v Ekspert
26. januar 2005 - 21:41 #7
Eksempel:

public class Paragraphs2 {
    public static int count(String s) {
        return s.split("\\.").length;
    }
    public static void main(String[] args) {
        System.out.println(count("Hej med dig. Jeg kan godt lide java."));
    }
}
Avatar billede kalp Novice
26. januar 2005 - 22:05 #8
Kommentar: missmalik
26/01-2005 21:37:25

tænker du på at koden skal være i en metode og sendes retur formatteret? for så er det ikke de vildt store ændringer der skal foretages:)
Avatar billede missmalik Nybegynder
26. januar 2005 - 22:19 #9
hey takker..

arne kan du lige lægge et svar, så jeg kan lukke spørgsmålet
Avatar billede arne_v Ekspert
26. januar 2005 - 22:20 #10
jo da
Avatar billede missmalik Nybegynder
26. januar 2005 - 22:51 #11
vent lige lidt


public class Tekstboks
{

    public static void main (String[] args)
    {

        final String boks ="hej med dig. Jeg hedder Kaj";


    }
        public static int count(String boks)
        {
            int antal = 0;
            for(int i = 0; i < boks.length(); i++) {
                if(boks.charAt(i) == '.') {
                    antal++;
                }
            }
            return antal;
        }
      }


Når jeg laver den sådan, overfører den ikke tekstboksen, men jeg skal taste den
Avatar billede arne_v Ekspert
26. januar 2005 - 22:54 #12
Det der er jo en console app.

Hvis du har en GUI app så smider du

        public static int count(String boks)
        {
            int antal = 0;
            for(int i = 0; i < boks.length(); i++) {
                if(boks.charAt(i) == '.') {
                    antal++;
                }
            }
            return antal;
        }

metoden ind i din klasse og så laver du noget ligesom:

dintextboxmedantal.setText("" + count(dintextboxmedord.getText()));
Avatar billede missmalik Nybegynder
26. januar 2005 - 23:00 #13
øøhhh, det hjælp ikke meget
Avatar billede missmalik Nybegynder
27. januar 2005 - 00:18 #14
jeg aner ikke hvordan man lukker spørgsmål
Avatar billede kalp Novice
27. januar 2005 - 00:22 #15
Du skal nede i omkring venstre hjørne kunne se en lille boks men arne's navn i.. marker det og tryk på knappen accepter så er det klaret:) du skal gøre præcis det samme med dine tidligere spørgsmål.. sig til hvis det stadig ikke giver mening
Avatar billede arne_v Ekspert
27. januar 2005 - 10:38 #16
Et komplet GUI eksempel:

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class ParagraphCount extends JFrame implements ActionListener {
    private JTextArea txt;

    private JLabel lbl;

    private JButton btn;

    public ParagraphCount() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new BorderLayout());
        txt = new JTextArea();
        getContentPane().add(txt, BorderLayout.CENTER);
        lbl = new JLabel("0");
        getContentPane().add(lbl, BorderLayout.NORTH);
        btn = new JButton("Count");
        btn.addActionListener(this);
        getContentPane().add(btn, BorderLayout.SOUTH);
        pack();
    }

    public static int count(String boks) {
        int antal = 0;
        for (int i = 0; i < boks.length(); i++) {
            if (boks.charAt(i) == '.') {
                antal++;
            }
        }
        return antal;
    }

    public void actionPerformed(ActionEvent e) {
        lbl.setText("" + count(txt.getText()));
    }

    public static void main(String[] args) {
        ParagraphCount f = new ParagraphCount();
        f.setVisible(true);
    }
}
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