Gå til innhold

[Løst]Java problem [les post for beskrivelse]


Anbefalte innlegg

Heisann

 

Jeg er ganske fersk i java, og vi har fått en oppgave hvor vi skal sjekke det en bruker skriver inn, om det er de riktige bokstavene. Jeg har egentlig fått programmet til å gjøre det det skal men med en liten feil.

import java.util.Scanner;
class Karakterstatistikk {
 public static void main(String[] args) {

//Deklarasjoner
Scanner tastatur = new Scanner(System.in);
String karakterer = "x";
String samledeKarakterer = "";

//Utskrift
System.out.println("Innlesingen avsluttes med tom linje");

//Innlesing
while(karakterer.length() != 0){
  System.out.print("Angi karakterer for student: ");
  karakterer = tastatur.nextLine();

//Hvis bruker skriver inn en ugyldig karakter
  if(gyldigeKarakterer(karakterer) == false){
	System.out.println("Feil. Linjen inneholder ugyldige karakterer. Linjen vil bli ignorert.");
  }
  else
	samledeKarakterer = samledeKarakterer + karakterer;
}

int A = 0;
int B = 0;
int C = 0;
int D = 0;
int E = 0;
int F = 0;

//Finner antall karakterer
for(int i=0; i<samledeKarakterer.length();i++){
  if (samledeKarakterer.charAt(i) == 'A')
	A++;
  else if (samledeKarakterer.charAt(i) == 'B')   
	B++;	  
  else if (samledeKarakterer.charAt(i) == 'C')	   
	C++;	
  else if (samledeKarakterer.charAt(i) == 'D')	 
	D++;  
  else if (samledeKarakterer.charAt(i) == 'E')		
	E++;	  
  else if(samledeKarakterer.charAt(i) == 'F')		
	F++;	  
}

//Skriver ut oversikt over antall karakterer
System.out.println("Oversikt over karakterer:");
System.out.println("A: " + A);
System.out.println("B: " + B);
System.out.println("C: " + C);
System.out.println("D: " + D);
System.out.println("E: " + E);
System.out.println("F: " + F);
  }


public static boolean gyldigeKarakterer(String karakterer){	 

boolean returVerdi = false;
char enKarakter;
for (int i = 0; i < karakterer.length(); i++){
  enKarakter = karakterer.charAt(i);

  if(enKarakter == 'A')
	returVerdi = true;
  else if(enKarakter == 'B')
	returVerdi = true;
  else if(enKarakter == 'C')
	returVerdi = true;
  else if(enKarakter == 'D')
	returVerdi = true;
  else if(enKarakter == 'E')
	returVerdi = true;
  else if(enKarakter == 'F')
	returVerdi = true;
  else{
	returVerdi = false; break;
  }
}
return returVerdi;
 }
}

 

Eksempel på utskrift her:

Innlesing avsluttes med tom linje.

 

Angi karakterer for student: ABBA

Angi karakterer for student: ABBAK

Feil. Linjen inneholder ugyldige karakterer. Linjen vil bli ignorert.

Angi karakterer for student: ABBA

Angi karakterer for student:

Feil. Linjen inneholder ugyldige karakterer. Linjen vil bli ignorert.

Oversikt over karakterer:

A: 4

B: 4

C: 2

D: 3

E: 0

F: 0

 

Jeg sliter med å få vekk den sisten "Feil. Linjen inneholder ugyldige karakterer. Linjen vil bli ignorert." linjen. Noen som vet hvordan jeg kan løse dette?

 

LØSNING:

//Hvis bruker skriver inn en ugyldig karakter
  if(gyldigeKarakterer(karakterer) == false){
	if(karakterer.length() != 0){
	System.out.println("Feil. Linjen inneholder ugyldige karakterer. Linjen vil bli ignorert.");
  }
  }
  else
	samledeKarakterer = samledeKarakterer + karakterer;
}

Endret av Oxaren
Lenke til kommentar
Videoannonse
Annonse

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...