apwr Skrevet 17. januar 2007 Del Skrevet 17. januar 2007 (endret) Jeg har skrevet følgende kode: public class ArrayMethods1 { public static void main(String[] args) { String fotballSpiller = "Ronaldinho"; } public static char metode1(String fotballSpiller) { char tegn1 = fotballSpiller.indeksOf('2'); return (tegn1); System.out.println("Tegn nr 2 i strengen er "+ tegn1); } } Dette programmet skal hente ut et tegn i fra posisjon 2 (dvs nr 3) fra strengen min. Når jeg kompilerer får jeg følgende feilmelding: "java:11: cannot find symbol symbol : method indeksOf(char) location: class java.lang.String char tegn1 = fotballSpiller.indeksOf('2'); ^ (under punktum) 1 error Tool completed with exit code 1" Noen som vet hva som er galt? Endret 17. januar 2007 av apwr Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 Takk! Hva om jeg skal returnere indeksen til det første elementet i en string hvor jeg spesifiserer en int-verdi? Jeg skal bruke indexOf-metoden. Lenke til kommentar
ratata Skrevet 17. januar 2007 Del Skrevet 17. januar 2007 fotballspiller.indexOf('a'), dersom du vil finna indeksen til angitt char. Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 (endret) Takker for svar! La oss si at jeg skal lage en array med noen tall i. Denne velger jeg som første parameter, og en int verdi som andre element. Programmet skal returnere indeksen til det første elementet i arrayen som samsvarer med det andre parameteret, dvs int-verdien. Alt dette ved hjelp av indexOf-metoden. Noen som kan dette? Endret 17. januar 2007 av apwr Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 Jeg har laget dette programmet: public class ArrayMethods1 { public static void main(String[] args) { int[] tallRekke = new int[] {2,5,4,787,4,78}; } public static int tallMetode(int tallRekke) { int verdi1 = tallRekke.IndexOf(4); System.out.println("Indeksen til det valgte tallet er "+verdi1); } } Jeg skal hente ut indeksen til den første verdien av 4. Når jeg kompilerer programmet får jeg en feilmelding. "ArrayMethods1.java:11: int cannot be dereferenced int verdi1 = tallRekke.IndexOf(4); ^(hake under punktum mellom tallRekke og indexOf) 1 error Tool completed with exit code 1" Er det noen som vet hva som er galt? Lenke til kommentar
Qwark Skrevet 17. januar 2007 Del Skrevet 17. januar 2007 Her var det mye feil - Du kjører aldri metoden tallMetode inni main, du må ha et metodekall. - Metoden må være void siden du ikke returnerer noe. - Metoden må ta inn int[] tallRekke og index som man vil finne som argument, evt la tabellen være en klassevariabel, da kan den bruker overalt i klassen. - Man bruker ikke indexOf på tabeller men enTabell[etTallSomErIndexenSomManvilHa]; indexOf() bruker man på String. Lenke til kommentar
Qwark Skrevet 17. januar 2007 Del Skrevet 17. januar 2007 (endret) EDIT:Dobbelpost Endret 17. januar 2007 av Qwark Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 (endret) Takker for svar igjen! Og nei, jeg er ikke særlig stø i når det kommer til programmering Oppgaven går som følger: The indexOf method takes an int array as the first parameter and an int value as the second parameter. It must return the index of the first element in the array where the specified int value is found, or -1 if the element is not present. Kan jeg bruke en String til å lagre en rekke tallverdier? Her er koden jeg har nå: public class ArrayMethods1 { public static void main(String[] args) { tallMetode(); } public static void tallMetode() { String tallRekke = "2,5,4,787,4,78"; int verdi1 = tallRekke.indexOf(); System.out.println("Indeksen til det valgte tallet er "+verdi1); } } Det kan godt være jeg er helt på jordet nå. Hva er feil? Endret 17. januar 2007 av apwr Lenke til kommentar
Qwark Skrevet 17. januar 2007 Del Skrevet 17. januar 2007 (endret) -I følge oppgaveteksten ser det ut til at du skal metoden skal returnere en int, da bruker man ikke void men int, void brukes om metoden ikke skal retunere noe. -Videre står det at metoden skal ta inn en tabell som første argument og et tall som andre - Du må bruke en forløkke som sjekker tallenei tabellen om de er lik siste argument i metoden og finner den en som er lik så skal du returnere indexen der hvorden fant tallet. -Det virker som du tror du skal bruke indexOf() metoden til Stirng, men oppgaven sier at du skal skrive en indexOf ()metode selv. public class ArrayMethods1 { public static void main(String[] args) { tallMetode(); } public static void tallMetode(tabellInnHer,tallInnHer) { //Dette er ikke en int Array og den kommer ikke inn som argument String tallRekke = "2,5,4,787,4,78"; // :hmm: :no: tallrekke er string og du prøver å sette den til en int? int verdi1 = tallRekke.indexOf(); Jaja her var da noe rett-->System.out.println("Indeksen til det valgte tallet er "+verdi1); } } Ikke for å være slem men det virker som du har problemer med forståelsen av både java og engelsk og jeg må på det sterkeste anbefale at du rusler til et bibliotek og se om de har boka Rett på java Den er enkel og grei til å starte med og er på norsk, etterhvert så finner du fram en bedre bok som går mere i dybden på java. Men for all del ikke gi opp programmering, det er morsomt men det er viktig å få inn det grunnleggende på en god måte. Endret 17. januar 2007 av Qwark Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 Jeg har en javabok (Java som første programeringsspråk) og har lest en del i den. Har ikke kommet langt nok til å løse slike oppgaver enda, derfor spør jeg dere om hjelp. Men får vel prøve å løse denne oppgaven nok en gang...Begynner å bli litt lei nå etter utallige mislykkede forsøk. Lenke til kommentar
Qwark Skrevet 17. januar 2007 Del Skrevet 17. januar 2007 Det virker som du tror du skal bruke indexOf() metoden til Stirng, men oppgaven sier at du skal skrive en indexOf ()metode selv. Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 Kan du utdype det litt? Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 (endret) Hvordan ser det ut nå? public class ArrayMethods1 { public static void main(String[] args) { int[] tallRekke = new int[] {3,6,45,3,7,9,1}; } public static int tallMetode(tallRekke, 6) { forsteIndeks = tallRekke[0]; for(int indeks=0; indeks < tallRekke.length; indeks++) { if (forsteIndeks == tallRekke[indeks]) //Her må det gjøres noe. Hvordan skal jeg implementere 6-tallet i denne løkka? System.out.println("Indeksen til det valgte tallet er "+tallRekke[indeks]); } } } Endret 17. januar 2007 av apwr Lenke til kommentar
Qwark Skrevet 17. januar 2007 Del Skrevet 17. januar 2007 Veldig bra, du nærmer deg nå er du kommet så langt at jeg kan poste mitt forslag. public class Indexfinder { public static void main(String[] args) { int[] tabell = new int[] {3,6,45,3,7,9,1}; int tallSomViVilFinne = 7; int plassITabellen = tallMetode(tabell,tallSomViVilFinne); //Om tallet finnes i tabellen så... if(plassITabellen != -1){ System.out.println("Indeksen til det valgte tallet er "+ plassITabellen); //hvis ikke så... }else System.out.println("Fant ikke tallet i tabellen"); } public static int tallMetode(int[] tab,int tall) { for(int indeks=0; indeks < tab.length; indeks++) { if (tall == tab[indeks]){ return indeks; } }return -1; //returnerer -1 om tallet ikke finnes i tabellen } } Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 (endret) Og der funket sannelig koden min! Takk for stor behjelpelighet! PS! kommer sikkert med flere spørsmål senere. Endret 17. januar 2007 av apwr Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 Jeg sliter litt med å hente ut indeksen til den laveste verdien. Søket starter fra en bestemt indeks. Her er koden: public class ArrayMethods1 { public static void main(String[] args) { int[] tallRekke = new int[] {1,6,45,3,7,9,5}; int tall1 = 9; int tall2 = 3; int plass = tallMetode(tallRekke, tall1); int plass2 = tallMetode2(tallRekke, tall2); if(plass != -1) { System.out.println("Indeksen til det valgte tallet er "+plass); } else System.out.println("Tallet finnes ikke i tabellen"); System.out.println("Indeksen til den laveste verdien er "+plass2); } public static int tallMetode(int[] tallRekke, int tall1) { for(int indeks=0; indeks < tallRekke.length; indeks++) { if (tall1 == tallRekke[indeks]) { return indeks; } } return -1; } public static int tallMetode2(int[] tallRekke, int tall2) { for(int indeks=tall2; indeks < tallRekke.length; indeks++) { if(tall2 < tallRekke[indeks]) { // Det er denne jeg sliter med return indeks; } } return -1; } } Tips? Lenke til kommentar
Qwark Skrevet 17. januar 2007 Del Skrevet 17. januar 2007 for(int indeks=tall2; indeks < tallRekke.length; indeks++) { if(tall2 < tallRekke[indeks]) { for(int indeks=tall2; indeks < tallRekke.length; indeks++) Det som står her er: start å telle fra plass tall2(som var 3) Hvorfor det, vil du ikke se igjenom hele tabellen? if(tall2 < tallRekke[indeks]) { Hvis tall2(Som fortsatt er 3) er mindre en tallet som ligger i tallRekke[indeks] så vil du at metoden skal returnere gitt indeks? hva om første tall i tabellen er 25, da vil den returnere 0 for alle tall under 25 Lenke til kommentar
apwr Skrevet 17. januar 2007 Forfatter Del Skrevet 17. januar 2007 Oppgaven: "The method has to search through the array starting at the index specified by the second parameter and return the index of the lowest value." Den skal starte å søke på plassen angitt av det andre parameteret. Lenke til kommentar
Epixx Skrevet 18. januar 2007 Del Skrevet 18. januar 2007 Kan du legge ut hele oppgaveteksten, så skal jeg ta en titt på det? 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å