Voor school ben bezig om vanuit een tekstbestand (.txt) een tekst in te lezen, zodat ik deze later kan omzetten met behulp van een mono-alfabetisch substitutie systeem in een gecodeerde tekst. De tekst inlezen in een String heb ik op de volgende manier gerealiseerd:
Het substitutie systeem heb ik gerealiseerd door middel van een HashMap waarbij elke letter van het alfabet een sleutel is en een andere letter de waarde. Voor de eenvoud maak ik even gebruik van het meest simpele: {a=b, b=c}.
Wanneer ik een nieuw string aanmaak en de letters vervangen in een loop en de output buiten de loop naar de console print geeft deze geen enkele output.
Mijn vraag is of iemand weet waarom er geen nieuwe output wordt gegenereerd als ik de de string print buiten de loop? Ik heb al verschijdene dingen geprobeerd zoals het gebruik van een StringBuffer, maar deze geeft precies hetzelfde probleeem. Ik hoop dat er iemand is die kan helpen want ik staar mij hier een beetje blind op!
Bij voorbaat dank.
Java:
1
2
3
4
5
| BufferedReader bfr = new BufferedReader(new FileReader("C:\tekst.txt")); String buffer, result = ""; while((buffer = bfr.readLine()) != null){ result = result + buffer.toLowerCase(); } |
Het substitutie systeem heb ik gerealiseerd door middel van een HashMap waarbij elke letter van het alfabet een sleutel is en een andere letter de waarde. Voor de eenvoud maak ik even gebruik van het meest simpele: {a=b, b=c}.
Wanneer ik een nieuw string aanmaak en de letters vervangen in een loop en de output buiten de loop naar de console print geeft deze geen enkele output.
Java:
1
2
3
4
5
6
7
8
9
10
11
| String nieuw = new String(); // Nieuw String om mee te werken for(int i = 0; i <= result.length(); i++){ // Loop net zolang tot alle karakters in de string zijn geweest String karakter = result.substring(i, i+1).toString(); // Verkrijg karakter dmv substring if(letters.containsKey(karakter)){ nieuw = nieuw + letters.get(karakter); // letters = HashMap met substitutie systeem } else{ nieuw = nieuw + karakter; } } |
Mijn vraag is of iemand weet waarom er geen nieuwe output wordt gegenereerd als ik de de string print buiten de loop? Ik heb al verschijdene dingen geprobeerd zoals het gebruik van een StringBuffer, maar deze geeft precies hetzelfde probleeem. Ik hoop dat er iemand is die kan helpen want ik staar mij hier een beetje blind op!
[ Voor 10% gewijzigd door een moderator op 14-09-2008 23:59 . Reden: Code tags toegevoegd... ]