Avatar billede jesperbaldur Nybegynder
09. maj 2003 - 17:42 Der er 5 kommentarer og
1 løsning

return en string-værdi fra en public klasse...?

Jeg har en klasse som ser således ud:
public class Read_file
{
    public String Read_file(String infile)
    {
    String tekst = "",line="";
    BufferedReader in;
    try
        {
            in = new BufferedReader(new FileReader(infile));
            while ((line = in.readLine()) != null)
            {
                  tekst += line;
            }
        }
        catch (IOException exception)
        {
        }
        return tekst;
    }

}

den skal bruges til at læse nogle linier fra en nogle tekstfiler. Det var så meningen at jeg fra mit hoved-program skulle kunne kalde denne klasse på flg måde:
Read_file s = new Read_file("Gensekvens.txt");

men den siger fejl....hvorfor? Og hvordan retter jeg det?
Avatar billede arne_v Ekspert
09. maj 2003 - 17:46 #1
Enten:

public class Read_file
{
    public Read_file() {
    }

    public String doit(String infile)
    {

og

    Read_file rf = new Read_file();
    rf.doit("Gensekvens.txt");
Avatar billede arne_v Ekspert
09. maj 2003 - 17:47 #2
eller:

public class Read_file
{
    public static String doit(String infile)

og

Read_file.doit("Gensekvens.txt");
Avatar billede arne_v Ekspert
09. maj 2003 - 17:48 #3
Altså enten constructor + metode eller statisk metode.

Og du kan ikke have en metode der hedder det samme som klassen - det
er reserveret constructor.
Avatar billede jakoba Nybegynder
09. maj 2003 - 17:52 #4
Read_file er navnet på din klasse. så indin den klasse kan det navn kun bruges til en constructor metode der opbygger en instans af klassen. den SKAL defineres uden retur-type.

men du kunne jo lave en public Strig variabel i klassen med den ønskede streng i.

public class Read_file
{
    public String text = ",line=";

    public Read_file(String infile)  // NB ingen type, ikke engang void
    {
    BufferedReader in;
    try
        {
            in = new BufferedReader(new FileReader(infile));
            while ((line = in.readLine()) != null)
            {
                  tekst += line;
            }
        }
        catch (IOException exception)
        {
        }
        return tekst;
    }

}

og så sige:

Read_file s = new Read_file("Gensekvens.txt");
String resultat = s.text;
Avatar billede jakoba Nybegynder
09. maj 2003 - 17:56 #5
Ups: linien
        return tekst;
skal væk. der returneres ikke noget.
Avatar billede jesperbaldur Nybegynder
09. maj 2003 - 18:01 #6
Jeg takker for hjælpen. Fik det til at virke med arne_v's sidste forslag
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