Gr0v Skrevet 27. september 2007 Del Skrevet 27. september 2007 for å finne første bokstav bruker jeg charAt(0).....men hvordan finner jeg siste bokstav? Lenke til kommentar
Dj_Offset Skrevet 27. september 2007 Del Skrevet 27. september 2007 for å finne første bokstav bruker jeg charAt(0).....men hvordan finner jeg siste bokstav? 9586735[/snapback] charAt(0) gir deg første, charAt(1) gir deg andre... siste kommer litt an på hvor lang strengen er. Men du er på rett veg. Lenke til kommentar
Gr0v Skrevet 27. september 2007 Forfatter Del Skrevet 27. september 2007 (endret) 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 27. september 2007 av Gr0v Lenke til kommentar
Dj_Offset Skrevet 27. september 2007 Del Skrevet 27. september 2007 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
JAPCU Skrevet 27. september 2007 Del Skrevet 27. september 2007 I java 1.5 docs finner du klassen "String" og alle tilhørende metoder. Der er det en som heter int length() Lenke til kommentar
Gr0v Skrevet 27. september 2007 Forfatter Del Skrevet 27. september 2007 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
Mr.Garibaldi Skrevet 27. september 2007 Del Skrevet 27. september 2007 (endret) 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 27. september 2007 av Mr.Garibaldi Lenke til kommentar
pgdx Skrevet 27. september 2007 Del Skrevet 27. september 2007 Kanskje resultatet av kompileringen kan gi deg noen hint om hvor feilen ligger ... Lenke til kommentar
mar Skrevet 27. september 2007 Del Skrevet 27. september 2007 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
Gr0v Skrevet 28. september 2007 Forfatter Del Skrevet 28. september 2007 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
BlueEAGLE Skrevet 28. september 2007 Del Skrevet 28. september 2007 Snedig at java ikke støtter negativ indeks i substring for å telle fra slutten av strengen. Da ser det ut som at du blir sittende med length() og charAt(). Lenke til kommentar
Mr.Garibaldi Skrevet 28. september 2007 Del Skrevet 28. september 2007 (endret) 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 28. september 2007 av Mr.Garibaldi Lenke til kommentar
LostOblivion Skrevet 28. september 2007 Del Skrevet 28. september 2007 (hva betyr forresten "null, " inni showMessageDialog?) Det betyr at du kan alltids sjekke ut objekter og funksjoner i dokumentasjonen. http://java.sun.com/j2se/1.4.2/docs/api/ov...ew-summary.html Lenke til kommentar
Iyon Skrevet 14. oktober 2007 Del Skrevet 14. oktober 2007 Har ikke lest så godt gjennom tråden, men gjør ikke dette susen? char sisteBokstav = tekst.charAt(antTegn-1); Lenke til kommentar
Mr.Garibaldi Skrevet 14. oktober 2007 Del Skrevet 14. oktober 2007 (endret) 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 14. oktober 2007 av Mr.Garibaldi Lenke til kommentar
___ Skrevet 15. oktober 2007 Del Skrevet 15. oktober 2007 for å finne første bokstav bruker jeg charAt(0).....men hvordan finner jeg siste bokstav? String s = "Hallo"; char siste = (new StringBuffer(s)).reverse().charAt(0); Hilsen Werner Lenke til kommentar
pgdx Skrevet 15. oktober 2007 Del Skrevet 15. oktober 2007 Javel, Werner. Det var jo en effektiv metode å gjøre det på. Fremfor å bruke charAt() i samarbeid med length(). Lenke til kommentar
Dj_Offset Skrevet 18. oktober 2007 Del Skrevet 18. oktober 2007 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
___ Skrevet 18. oktober 2007 Del Skrevet 18. oktober 2007 A bruke exceptions for å kontrollere programflyt er fy. Werner Lenke til kommentar
Dj_Offset Skrevet 18. oktober 2007 Del Skrevet 18. oktober 2007 A bruke exceptions for å kontrollere programflyt er fy. Werner Jeg vil ikke anbefale denne løsningen, selv om den "fungerer", på samme måte som at jeg vil fraråde alle og enhver å bruke "char siste = (new StringBuffer(s)).reverse().charAt(0);". Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå