Avatar billede tanis13 Nybegynder
15. november 2005 - 00:58 Der er 7 kommentarer og
1 løsning

Data tab ved String

Når jeg skriver en 'ting' i min input, skulle den gerne sende en String til en anden klasse. Dette lykkes kun, hvis jeg konvertere min String til noget andet, f.eks. double eller int (som jeg også bruger).
Men når jeg vil sende en alm. String sender den ingen ting.

Ved ikke om det gav nogen mening, men skriv hvis det er uforståeligt, så vil jeg forsøge at forklare bedre.

Kort uddrag af koderne:
-----

class vareregister (forkortet){
public void kob_g_ListArt(String listArt) {
        int i = 0;
        while(i<vareliste.size()) {
            if (((varer)vareliste.get(i)).hentArt() == listArt) {
                System.out.println(((varer)vareliste.get(i)).hentNavn());
            }
            i++;
        }
    }
}

class layout (forkortet){
    System.out.println(" * Opgiv den art du ønsker at se en liste over:");
    String listArt = reader.MenuValg();
    vareregister.kob_g_ListArt(listArt);
}

class reader (fuld reader){
    public reader() { reader = new BufferedReader(new InputStreamReader(System.in)); }
    public String MenuValg() {
        System.out.print("  : ");
        String inputLine = readInputLine();
        return inputLine;
    }
    private String readInputLine() {
        String line = "";
        try { line = reader.readLine(); }
        catch(java.io.IOException exc) {
            System.out.println ("Read error: " + exc.getMessage());
        }
        return line;
    }
}
Avatar billede tanis13 Nybegynder
15. november 2005 - 00:58 #1
Jeg indskriver min input i class'en layout.
Avatar billede arne_v Ekspert
15. november 2005 - 07:18 #2
hvad vil du sende fra hvor til hvor i ovenstående ?
Avatar billede tanis13 Nybegynder
15. november 2005 - 11:02 #3
jeg sender information fra 'class layout' til 'class vareregister', men mit input i 'class layout' bliver aflæst i 'class reader' .

Hvis mit input er en string, som skal sendes til en int ser det således ud:

    System.out.println(" * Opgiv det ønskede antal:");
    String kobAntal = reader.MenuValg();
    int kobAntalI;
    kobAntalI = Integer.parseInt(kobAntal);
    vareregister.kob_a_KobVare(kobAntalI);

Dette virker også fint, men når jeg vil sende kun en String (f.eks.):

    System.out.println(" * Opgiv den art du ønsker at se en liste over:");
    String listArt = reader.MenuValg();
    vareregister.kob_g_ListArt(listArt);

Ved ikke om jeg skal prøve at konvertere en String til en String for at sende det først ? eller...
Avatar billede cayman Nybegynder
15. november 2005 - 11:10 #4
Jeg ser du bruger == til at sammenligne textstrenge. Det er somregel rigtigere at bruge equals
string1.equals(string2);
Avatar billede tanis13 Nybegynder
15. november 2005 - 11:22 #5
Okay, hvad hvis det er en int - kan man bruge equals der eller skal jeg fortsætte med at bruge == ?
Avatar billede tanis13 Nybegynder
15. november 2005 - 11:26 #6
Der er faktisk ikke et behov for at svare mere, løsningen viste sig at være equals... :)

Tusind tak for hjælpen ;) post lige et svar, så smider jeg point!
Avatar billede arne_v Ekspert
15. november 2005 - 11:51 #7
simple data typer => brug ==

objekter => brug .equals til at sammenligne om indholdet er ens og == til at sammenligne om
det er samme objekt
Avatar billede cayman Nybegynder
15. november 2005 - 13:09 #8
ok :o)
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