Gå til innhold

Anbefalte innlegg

Hei!

 

Jeg skal lage et program I java (ikke script) hvor jeg skal skrive in opp til 20 navn, og skrive stop når jeg ikke har 20 navn å legge. Etter det så skal jeg kunne søke blant de navnene som er lagt inn og få ut det some matcher det jeg søker etter.

 

Så langt har jeg dette, etter min mening, patetiske forsøke på å få til noe:

 

import static java.lang.System.*;
import static javax.swing.JOptionPane.*;
import static java.lang.Integer.*;
public class javakode{
  public static void main(String[] args) {
 String melding = "Skriv inn navn";
 final int navna = 20;
 String navnListe;
 String navn;
 for (int navnnr=1; navnnr<=navna; navnnr++) {
  navn = (showInputDialog(melding));
  navnListe = navn;
 }
 showMessageDialog(null, "Navn som matcer søk: " + navnListe);
  }
 }

Endret av Aragorn195
Lenke til kommentar
Videoannonse
Annonse

Du må kunne lagre navnene i en liste, du kan bør ikke bruke string til dette. Istedet bør du gå for ArrayList<String> som har en funksjon som heter Add.

Deretter kan du lage en løkke som går helt til brukeren taster inn en tom linje, eller du har nådd 20 elementer.

 

Den skal gå enten til 20 eller brukeren skriver stop. Bare påpeker det.

Lenke til kommentar

Du må uannsett ha en ArrayList, eller vanlig array for å legge inn navnene(anbefaler å begynne med den siste hvis du er ny på java). Å sjekke om den er 20 eller brukeren har sagt stop kan du sjekke med en vanlig if-setning.

Endret av MrLG
Lenke til kommentar

Du må uannsett ha en ArrayList, eller vanlig array for å legge inn navnene(anbefaler å begynne med den siste hvis du er ny på java). Å sjekke om den er 20 eller brukeren har sagt stop kan du sjekke med en vanlig if-setning.

 

Det jeg har fått så langt er

/*
* Mal for Java-program
*/
import static java.lang.System.*;
import static javax.swing.JOptionPane.*;
import static java.lang.Integer.*;
import java.util.ArrayList;
public class oblig4 {
  public static void main(String[] args) {
 String melding = "Skriv inn navn:";
 final int navna = 20;
 al.add(0, navnListe);
 String navn;
 for (int navnnr=1; navnnr<=navna; navnnr++) {
  navn = (showInputDialog(melding));
  navnListe = navn;
 }
 showMessageDialog(null, "Navn som matcher søk: " + navnListe);
  }
 }

 

Jeg har kommet fram til dette etter søking om ArrayList på Google og mange feilmeldinger om at pakken ikke finnes.

Lenke til kommentar

Jeg har kommet fram til dette etter søking om ArrayList på Google og mange feilmeldinger om at pakken ikke finnes.

 

Begynn heller med vanlig array du og ikke arraylist, det er viktig å lære seg hvordan det fungerer først.

Koden din bør inneholde noe ala det her:

 

final int navna = 20;
String[] navnListe;


public static void main(String[] args) {

navnListe = new String[navna]; //Setter antall til å være lik navna

for (int i=0; i < navnListe.length(); i++) {
  String navn = (showInputDialog(melding)); //Denne må kanskje fikses/konverters til string?, litt rusen på java

navnListe[i] = navn;
 }


 }		

 

I all hovesak er det sånn du legger det inn i lista, ihvertfall sånn du bør lære deg å gjøre det først. Hvis du ikke vet hvordan alt for-løkke og f.eks navnListe fungerer anbefaler jeg deg å google det, sette deg mer inn i det.

 

EDIT: Tar forbehold om at denne koden ikke er helt riktig, fort gjort å glemme noe når man ikke bruker vertøy..

Endret av MrLG
Lenke til kommentar

Det er en god nybegynner oppgave du har begynt å skrive, men som mange andre sier her: Les deg opp på grunnleggende programmering og grunnleggende programmeringssyntaks. Slik jeg ser det nå, stopper det helt opp fordi du er totalt blank på det du driver med.

Lenke til kommentar

:)

 

Nå syr jeg puter under armene på trådstarter:

 

 

import java.util.Scanner;
public class Klient {
public static void main(String[] args) {
	String[] navneListe = new String[20];
	int antallNavn = 0;	  
	Scanner innData = new Scanner(System.in);	  
	String nyttNavn = null;

	System.out.println("Trinn 1. Legg inn navn:");
	System.out.println("------------------------------------------");
	do {
		System.out.print("Skriv inn nytt navn: ");
		nyttNavn = innData.next();
		nyttNavn.trim();

		if (nyttNavn.length() > 0 && !nyttNavn.equalsIgnoreCase("stopp")) {
			navneListe[antallNavn++] = nyttNavn;
		}

	} while (antallNavn < navneListe.length-1 && !nyttNavn.equalsIgnoreCase("stopp"));	  

	System.out.println("\nTrinn 2. Finn navn:");
	System.out.println("------------------------------------------");
	do {
		System.out.print("Skriv inn navn du leter etter: ");
		nyttNavn = innData.next();
		nyttNavn.trim();

		if (nyttNavn.length() > 0 && !nyttNavn.equalsIgnoreCase("stopp")) {
			for (int i = 0; i < antallNavn; i++) {
				if (navneListe[i].equalsIgnoreCase(nyttNavn)) {
					System.out.println("Treff i navnelisten, navnet: " + navneListe[i]);
				}
			}
		}

	} while (!nyttNavn.equalsIgnoreCase("stopp"));			  
}
}

 

Merk! Det finnes mange måter å løse problemet på - her er kun én løsning.

 

 

Endret av droidy
Lenke til kommentar
  • 2 uker senere...

Hallo, vet ikke om du har fått til oppgaven, men her er et alternativ. Trenger bare å lage klassen Test og lime inn det under!

 

import java.util.ArrayList;

import javax.swing.JOptionPane;

class Metoder {

public ArrayList<String> navnene = new ArrayList<>();

public void registrerNavn(String navn) {

if (navnene.size() < 20) {

navnene.add(navn);

System.out.println("Navn er registrert på index: " + navnene.size());

} else {

System.out.println("Navn ikke registrert fordi listen kan ikke inneholde mer enn 20 navn");

}

}

public String sokNavn2(String navn) {

String meldning = "";

for (int i = 0; i < navnene.size(); i++) {

String navn2 = navnene.get(i);

if (navn2.equals(navn)) {

System.out.println("Fant navnet du søkte på: " + "'" + navnene.get(i).toString() + "'" + " og ble funnet på index: " + (i+1));

} else {

System.out.println("Ingen treff på index: " + (i+1));

}

}

return meldning;

}

public void visNavnRegistrert() {

for (int i = 0; i < navnene.size(); i++) {

System.out.println(navnene.get(i).toString());

}

}

public boolean sjekkAntallReg() {

boolean ok = true;

if (navnene.size() == 20) {

ok = false;

}

return ok;

}

public int sjekkAntallReg2() {

return navnene.size();

}

}

class Test {

public static void main(String[] args) {

Metoder metode = new Metoder();

String innNavn = JOptionPane.showInputDialog("Navn:");

boolean ok = false;

 

while (metode.sjekkAntallReg2() < 21 && ok == false) {

if (innNavn.equalsIgnoreCase("stop")) {

String sokNavn = JOptionPane.showInputDialog("Søk: Navn:");

metode.sokNavn2(sokNavn);

ok = true;

} else if (metode.sjekkAntallReg2() == 20) {

String sokNavn = JOptionPane.showInputDialog("Søk: Navn:");

metode.sokNavn2(sokNavn);

ok = true;

} else {

String navn2 = innNavn;

metode.registrerNavn(navn2);

innNavn = JOptionPane.showInputDialog("Navn:");

}

}

metode.visNavnRegistrert();

}

}
Endret av cronbach alpha
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...