Gå til innhold

finne siste bokstaven i en tekst


Anbefalte innlegg

Videoannonse
Annonse

Det er bare det at teksten leses inn: String tekst = showInputDialog("Skriv en tekst: ");

 

...så lengden på teksten er tilfeldig.

 

første bokstav bli da slik: char førsteBokstav = tekst.charAt(0);

Endret av Gr0v
Lenke til kommentar
Det er bare det at teksten leses inn: String tekst = showInputDialog("Skriv en tekst: ");

 

...så lengden på teksten er tilfeldig.

 

første bokstav bli da slik: char førsteBokstav = tekst.charAt(0);

9586860[/snapback]

 

Kanskje det finnes en måte å finne ut av lengden på strengen?

Lenke til kommentar

Slik ser programmet ut så langt, får 11 feil når jeg prøver å kompilere det. Ser dere noen åpenbare feil? (foruten at sisteBoktav-utregningen ikke er ferdig/rett)

import static javax.swing.JOptionPane.*;

 

class Tekstinnlesing {

public static void main(String[] args) {

 

String tekst = showInputDialog("Skriv inn en tekst: ");

String store = tekst.toUpperCase();

resultat = resultat + "\nBare store bokstaver: " + store;

 

String små = tekst.toLowerCase();

resultat = resultat + "\nBare små bokstaver: " + små;

 

int antTegn = tekst.lenght();

resultat = resultat + "\nAntall tegn i teksten: " + antTegn;

 

char førsteBokstav = tekst.charAt(0);

resultat = resultat + "\nFørste bokstav: " + førsteBokstav;

 

char sisteBokstav = tekst.charAt(0);

resultat = resultat + "\nSiste bokstav: " + sisteBokstav;

}

}

Lenke til kommentar

Har du husket å deklarere alle variablene du bruker?

Det er en variabel du bruker veldig mye (11 ganger) som du ikke har deklarert...

 

PS.

Neste gang du skal kopiere inn kode er det veldig fint om du bruker [_code_] <din kode her> [ _/code_] (uten _). Det gjøre koden *mye* lettere for oss å lese..!

Endret av Mr.Garibaldi
Lenke til kommentar

En liten ting til: Hold deg langt unna æ, ø og å i koden. Jeg vet det egentlig skal fungere. Var så heldig at jeg satt og rettet en del obligatoriske innlevering etter at en foreleser hadde oppfordret studentene til å bruke norsk i koden. Det ble mye ekstra arbeid det.

Lenke til kommentar

import static javax.swing.JOptionPane.*;

class Tekstinnlesing2 {
public static void main(String[] args) {

String tekst = showInputDialog("Skriv inn en tekst: ");
String store = tekst.toUpperCase();
showMessageDialog(null, "Bare store bokstaver: " + store);

String smaa = tekst.toLowerCase();
showMessageDialog(null, "Bare små bokstaver: " + smaa);

int antTegn = tekst.length();
showMessageDialog(null, "Antall bokstaver: " + antTegn);

char forsteBokstav = tekst.charAt(0);
showMessageDialog(null, "Første bokstav: " + forsteBokstav);

char sisteBokstav = tekst.charAt(antTegn);
showMessageDialog(null, "Siste bokstav: " + sisteBokstav);


}
}

 

Nå gjør programmet det det skal, foruten å finne siste bokstav. tekst.charAt(antTegn); <- er jeg inne på noe her? Programmet kompileres uten feil, men utregningen av siste bokstav vises ikke når jeg kjører det.

 

 

(hva betyr forresten "null, " inni showMessageDialog?)

Lenke til kommentar
 char sisteBokstav = tekst.charAt(antTegn);
showMessageDialog(null, "Siste bokstav: " + sisteBokstav);

 

Nå gjør programmet det det skal, foruten å finne siste bokstav. tekst.charAt(antTegn); <- er jeg inne på noe her? Programmet kompileres uten feil, men utregningen av siste bokstav vises ikke når jeg kjører det.

 

Ja, du har fortsått hvordan du skal gjøre det. Grunnen til at det ikke fungerer er at java, som så mange andre programmeringsspråk ikke starter å telle på 1, men 0.

Så hvis du bruker antTegn -1 så blir det riktig...

 

 

(hva betyr forresten "null, " inni showMessageDialog?)

9593570[/snapback]

Ta en titt her...

Endret av Mr.Garibaldi
Lenke til kommentar
  • 3 uker senere...
Har ikke lest så godt gjennom tråden, men gjør ikke dette susen?

 

char sisteBokstav = tekst.charAt(antTegn-1);

 

Jo, men siden det var klart at dette var en skoleoppgave ville ingen gi løsningen direkte.

Og trådstarter fant jo løsningen selv, han bare glemte å telle fra 0 i stedenfor å telle fra 1...

 

PS. denne tråden er jo også ganske gammel...

Endret av Mr.Garibaldi
Lenke til kommentar

Siden vi er inne på alternative løsninger for:

char bokstav = streng.charAt(streng.length() - 1);

Så er dette et utmerket tregt alternativ:

char bokstav;
int n = 0;
try {
while (true)
bokstav = streng.charAt(n++);
} catch (IndexOutOfBoundsException e) { if (n == 0) throw e; }

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...