Emsal Skrevet 30. januar 2014 Del Skrevet 30. januar 2014 Jeg har to klasser. I den ene klassen leses det inn en tekstfil, og i en annen klasse skal den tekstfila gjøres om til array. public class Ordene { public String ordene(String sCurrentLine) { BufferedReader br = null; try { br = new BufferedReader(new FileReader("del2.txt")); while ((sCurrentLine = br.readLine()) != null) { words = sCurrentLine; } } catch (IOException e) { e.printStackTrace(); } return sCurrentLine; } private String words; public String getWords() { return words; } public void setWords(String words) { this.words = words; } public Ordene() { this.ordene(words); } } også i denne klassen skal jeg prøve å splitte ordene slik at de kommer i en liste av en array. String tekst = o.getWords(); System.out.println(tekst); String[] ord = tekst.split(" "); System.out.println(ord); Og dette blir resultatet: kul awesome gris eple pai noen [Ljava.lang.String;@7ae9e9b Lenke til kommentar
Emsal Skrevet 30. januar 2014 Forfatter Del Skrevet 30. januar 2014 Løste det: for (int i = 0; i < ord.length; i++) { String etord = ord[i]; System.out.println(etord); } Lenke til kommentar
Emsal Skrevet 30. januar 2014 Forfatter Del Skrevet 30. januar 2014 Har støtt på et annet problem. Har dette i tekstfil 1: Anders Andreas Kjetil Karoline Marius Jannicke Hander og dette i tekstfil 2: kul awesome gris eple pai noen kulere problemet mitt er at ordet "kul" ligger i "kulere" så når jeg gjør dette gjør den bare ordet kulere til "Andersere" istedenfor det den egentlig skal gjøre altså "Hander". Er det mulig å få det til slik at ordet ikke forandrer seg før jeg har trykket space, og hvis ja, ville det hjulpet? public String fjernForkortelser(String input) { tekst = o.getWords(); String[] ord = tekst.split(" "); tekst1 = o.getWords1(); String[] ord1 = tekst1.split(" "); for (int i = 0; i < ord1.length; i++) { input = input.replace(ord[i], ord1[i]); } return input; } Lenke til kommentar
Emsal Skrevet 30. januar 2014 Forfatter Del Skrevet 30. januar 2014 (endret) fant ut at jeg må ha noe slikt noe: input = input.replace("\\b"+ord[i]+"\\b", ord1[i]); input = input.replaceAll("\\bhun\\b", "han"); input = input.replaceAll("\\bhund\\b", "katt"); men det funker ikke på den første input hah! Glemte å endre til "replaceAll" Endret 30. januar 2014 av Emsal Lenke til kommentar
Sokkalf™ Skrevet 1. februar 2014 Del Skrevet 1. februar 2014 (endret) Løste det: for (int i = 0; i < ord.length; i++) { String etord = ord[i]; System.out.println(etord); } Merk at du kan gjøre dette en del enklere slik: for (String etord : ord) { System.out.println(etord); } Endret 1. februar 2014 av Sokkalf™ Lenke til kommentar
Emsal Skrevet 1. februar 2014 Forfatter Del Skrevet 1. februar 2014 Kan du forklare den koden din litt nærmere, har aldri brukt en for løkke slik, og vi har ikke lært det på skolen. Lenke til kommentar
Fred7555 Skrevet 2. februar 2014 Del Skrevet 2. februar 2014 (endret) Det kalles en enhanced for-loop / for-each loop. Istedenfor å repetere et vist antall ganger (slik en for-lopp gjør), så går den gjennom alle elementene i en mengde. En slik mengde kan f.eks. være et array, og generelt alle klasser som implementerer interfacet 'Collection' for (<datatype> <variabelnavn> : <mengde>) { . . . } Som i eksempelet over, så går han gjennom alle strengene i mengden 'ord', og skriver det ut. Grunnen til at du fikk kul awesome gris eple pai noen [Ljava.lang.String;@7ae9e9b i et av dine tidligere innlegg, er fordi du skriver ut et array. Da skriver du ikke ut elementene, men minneaddressen til det. Om du vil skrive ut et array utenom å bruke en loop, kan du bruke metoden Arrays.toString(), som tar inn et array som argument. Da får du alt på en linje med komme imellom. Endret 2. februar 2014 av Fred7555 1 Lenke til kommentar
Emsal Skrevet 5. februar 2014 Forfatter Del Skrevet 5. februar 2014 God forklaring, læreren vår viste faktisk det der på skolen i dag. På to forskjellige måter vel å merke. 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å