webForumDet fria alternativet

Läsa in från textfil och bearbeta

2 svar · 399 visningar · startad av Broms

BromsMedlem sedan sep. 2002188 inlägg
#1

Tänkte göra ett program som läser in en text från en textfil, och beräknar antalet förekommande a,b,c etc etc, och summerar detta i ett histogram med en * för varje funnet exemplar, och skriver det sedan till en annan textfil, typ:

inFil.txt:
jahaaaaaaaaaa

utFil.txt:
a: *********** (11 st)
h: * (1 st)
j: * (1 st)

Är det smartast att göra en array bokstäver[] som redan från början innehåller 29 platser, varje innehållande ett objekt med plats för bokstaven och antalet funna exemplar?
t.ex. Bokstav(char b, int a) //b= en bokstav,t.ex. m, och a=antalet exemplar

Några idéer? Ingen som har sett något liknande redan gjort som man kan kika på?

BromsMedlem sedan sep. 2002188 inlägg
#2

Jag har börjat med programmet ovan, gjort en Bokstavs klass, en Alfabetsklass innehållande arrayen med plats för 29st Bokstavsobjekt, och så en Histogram fil, testprogrammet.. nu till frågan:

Om jag innan inläsningen från filen vill börja med att fylla arrayen med objekt innehållande (char bokstaven, int antalet_funna), från bokstav a-ö, hur gör jag då?? iställer för att skriva massa onödig kod kan man inte köra en for-sats och slinga igenom arrayen och fylla den med hjälp av varje bokstavs ASCII-nummer? har kikat på några sådana tabeller, men fixar inte själva tillämpningen av informationen på sådant sätt att jag i en for-sats kan åstadkomma det ovan önskade..

Uppskattar om någon kunde hjälpa mig med denna lilla fundering..gärna med ett enkelt exempel..

Tänkte mig ungefär enligt uppgiften på: http://www.cs.umu.se/kurser/TDBA62/VT03/uppgifter/LL5/LL5.html punkt 5-6, hittade dock bara uppgifterna, inga exempel...

antilizaerMedlem sedan apr. 200357 inlägg
#3

Något i den här stilen kanske:

int[] tecken = new int[255];

char c = // läses från filen.

if(c < 0 || c > 255) {
    tecken[0] = tecken[0] + 1;    // eller tecken[0]++
} else {
    tecken[c] = tecken[c] + 1;    // eller tecken[c]++
}
127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)