sveioen Skrevet 18. september 2006 Del Skrevet 18. september 2006 (endret) Håpet noen kunne hjelpe meg litt, i det sikkert mange vil kalle et simpelt problem. Jeg har en string-array[]. Variabelen x skal inn i det første ledige plassen i arrayet. Hvordan får jeg til det? Hvis array[0] er opptatt, skal den legges i array[1]. Hvis array[1] er opptatt, skal den legges i array[2]....osv Takker for all hjelp Endret 18. september 2006 av sveioen Lenke til kommentar
drool Skrevet 18. september 2006 Del Skrevet 18. september 2006 Håpet noen kunne hjelpe meg litt, i det sikkert mange vil kalle et simpelt problem. Jeg har en string-array[]. Variabelen x skal inn i det første ledige plassen i arrayet. Hvordan får jeg til det? Hvis array[0] er opptatt, skal den legges i array[1]. Hvis array[1] er opptatt, skal den legges i array[2]....osv Takker for all hjelp 6889739[/snapback] Går ut i fra at du har lyst til å lære deg java, så da trenger jeg ikke skrive koden for deg, men kan jo gi noen hint. Det du må gjøre er å lage en løkke. Inni denne løkka må du da sjekke hver posisjon i dette arrayet. Hvis det er noe i den første posisjonen som løkka treffer på skal den hoppe et steg videre helt til den finner en tom plass. Når den finner en tom plass kan du da sette inn variabelen x der. Lenke til kommentar
sveioen Skrevet 18. september 2006 Forfatter Del Skrevet 18. september 2006 Hmm okei, så hvis jeg kommet så langt: int x = 0; if (array[x] == null { array[x] = selskap; } else {.................. Det er herfra jeg ikke klarer å lage noe som funker. (Nybegynner i java..) Lenke til kommentar
Zethyr Skrevet 18. september 2006 Del Skrevet 18. september 2006 Hmm okei, så hvis jeg kommet så langt: int x = 0; if (array[x] == null { array[x] = selskap; } else {.................. Det er herfra jeg ikke klarer å lage noe som funker. (Nybegynner i java..) 6889975[/snapback] Jeg tror du må bruke en while-løkke eller liknende. Les om while-løkker (ganske enkelt), og kom tilbake med et nytt forslag. Poenget er at du må gå gjennom hver "skuff" (forbanna teit ord; hvert element høres bedre ut) i arrayet, og gjøre en sjekk: "er denne tom? hvis ja; legg inn data her.. hvis nei; test neste element. Lenke til kommentar
pgdx Skrevet 18. september 2006 Del Skrevet 18. september 2006 (endret) Bruk heller dette: class StrengTabell { public static void main(String[] args) { String[] tabell = new String[6]; tabell[0] = "Hallo"; tabell[1] = "Du"; tabell[2] = "Der"; tabell[3] = "Din"; tabell[5] = "JA"; for (int i = 0; i<tabell.length;i++) { if (tabell[i] == null) { tabell[i] = "dust!!"; } } for (int i = 0; i<tabell.length;i++) { System.out.println(tabell[i]); } } } Med forbehold om feil... Endret 18. september 2006 av drange Lenke til kommentar
oya Skrevet 18. september 2006 Del Skrevet 18. september 2006 Litt viderespørsmål, hvis det er greit: Hvordan kan man sjekke at det man lagrer i arrayen ikke finnes andre plasser i arrayen? Lenke til kommentar
sveioen Skrevet 18. september 2006 Forfatter Del Skrevet 18. september 2006 (endret) Bruk heller dette: class StrengTabell { public static void main(String[] args) { String[] tabell = new String[6]; tabell[0] = "Hallo"; tabell[1] = "Du"; tabell[2] = "Der"; tabell[3] = "Din"; tabell[5] = "JA"; for (int i = 0; i<tabell.length;i++) { if (tabell[i] == null) { tabell[i] = "dust!!"; } } for (int i = 0; i<tabell.length;i++) { System.out.println(tabell[i]); } } } Med forbehold om feil... 6890068[/snapback] Koden funka jo forsovet, men den fylte jo hele arrayen med "dust". Jeg skulle gjerne hatt noe som legger tekstvariabelen inn i første ledige element. Endret 18. september 2006 av sveioen Lenke til kommentar
Zethyr Skrevet 19. september 2006 Del Skrevet 19. september 2006 Litt viderespørsmål, hvis det er greit: Hvordan kan man sjekke at det man lagrer i arrayen ikke finnes andre plasser i arrayen? 6891445[/snapback] Da må man vel enten ha en sortert array, eller man blir tvunget til å loope gjennom hele arrayen og sjekke hvert element. Lenke til kommentar
pgdx Skrevet 19. september 2006 Del Skrevet 19. september 2006 Koden funka jo forsovet, men den fylte jo hele arrayen med "dust". Jeg skulle gjerne hatt noe som legger tekstvariabelen inn i første ledige element. 6891831[/snapback] Det er veldig rart... Sjekket koden her nå, og det fungerte bra her...Skjermbilde som bevis Lenke til kommentar
sveioen Skrevet 19. september 2006 Forfatter Del Skrevet 19. september 2006 (endret) Problemet er at jeg har en string array. La oss kalle den kommode . Kommode[375]. Variabelen "sokk" skal inn første ledige skuff, HVIS den ikke ligger i en av de andre skuffene fra før. Hvordan?! Vil gjerne ha kode, ettersom det for mitt vedkommende er meget lærerikt.. Endret 19. september 2006 av sveioen Lenke til kommentar
Zethyr Skrevet 20. september 2006 Del Skrevet 20. september 2006 int i; while(kommode!=null){ i++; } kommode=sokk; Ville noe sånt fungere? Jeg har ikke tid til å teste nå. Lenke til kommentar
aleh Skrevet 20. september 2006 Del Skrevet 20. september 2006 Skjult tekst: (Marker innholdet i feltet for å se teksten): public static void foo(){ //verdien som skal plasseres inn i tabellen String inputValue = "SOKK"; String[] tabell = new String[6]; tabell[0] = "Hallo"; tabell[1] = "Du"; tabell[2] = "Der"; tabell[3] = "Din"; //tabell[4] = inputValue; tabell[5] = "JA"; //-1 verdien vil si at ingen ledige plasser har blitt funnet. int firstEmptyPos = -1; //settes til TRUE hvis input verdien blir funnet. boolean foundValue = false; for (int i = 0; i<tabell.length;i++) { //sjekker om plassen er tom og om ikke en tom plassering har blitt funnet fra før. if (tabell[i] == null && firstEmptyPos==-1) { firstEmptyPos = i; } //hvis verdien finnes i tabellen hopp ut av løkken. else if(inputValue.equals(tabell[i])){ foundValue = true; break; } } //hvis det er funnet en ledig plass og verdien ikke finnes i listen. if(firstEmptyPos!=-1 && !foundValue) tabell[firstEmptyPos] = inputValue; //skriver ut hele listen. for (int i = 0; i<tabell.length;i++) { System.out.println(tabell[i]); } } Du/dere kan sjekke ut denne metoden, modifiserte litt koden til drange (uten hans tillatelse) håper det går greit. Den søker etter første ledige plassering og søker samtidig om input verdien allerede finnes i listen. - Hvis den finner verdien som skal plasseres hopper den ut av løkken og det er det. - Hvis den ikke finner verdien så plassere den verdien i den første ledige plasserignen. Denne plasseringen blir lagret i firstEmptyPos variabelen. - Hvis det er ingen ledige plasser så skjer det ingenting. Får gåsehud av denne lineære O(N) søkealgoritmen. Lenke til kommentar
rusolvan Skrevet 20. september 2006 Del Skrevet 20. september 2006 Siden du sier du ikke har så mye peil på java så har jeg her et eksempel på en veldig forenklet og ueffektiv(men lærerik) kode som gjøre saken for deg... har ikke testet den ut, kan være noe jeg har oversett da jeg lagde dette i farten, men du forstår sikkert poenget. så kan du etter å ha forstått denne prøve å lage den mere effektiv(bedre kode og kjøretid). her: String[] skuff = new String[375]; public void settInn(String x){ int forsteTommeSkuffIndex = -1; boolean skuffeFunnet = false; for (int i = 0; i < skuff.length; i++) { if(skuff.equals(x)){ break; } if (skuff == null && skuffeFunnet == false){ forsteTommeSkuffIndex = i; skuffeFunnet = true; } } if(forsteTommeSkuffIndex != -1){ skuff[forsteTommeSkuffIndex] = x; } else{System.out.println(x+" ligger allerede i skuffen!");} } Lenke til kommentar
rusolvan Skrevet 20. september 2006 Del Skrevet 20. september 2006 hehe, ja her var aleh litt før meg, men det går ut på akkurat det samme, så hvis du forstår disse burde problemet være løst Lenke til kommentar
sveioen Skrevet 21. september 2006 Forfatter Del Skrevet 21. september 2006 (endret) Tusen takk for hjelpen! Ved å se på aleh sin kode i tillegg til de andre klarte jeg å snekre sammen en kodesnutt og sette inn i den eksisterende koden. Endret 21. september 2006 av sveioen 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å