Java oefening

Status
Niet open voor verdere reacties.

bo110

Gebruiker
Lid geworden
25 dec 2010
Berichten
6
Schrijf een programma dat een aantal lijnen tekst inleest en deze allemaal samenvoegd tot 1 string. Gebruik een methode voor het tellen van het aantal woorden in de String. Schrijf deze woorden 1 voor 1 uit.

De uitvoer van het programma klopt niet..
Kan iemand mij helpen de fout op te sporen?

Mijn code:

Code:
import java.util.Scanner;
public class TekstInlezen{
 private String tekst;
 private int aantalWoorden=0;
 
 public TekstInlezen(String s){
  tekst=s;
 }
 
 public TekstInlezen(TekstInlezen t){
  tekst=t.tekst;
 }
 
 public void lees(){
  Scanner sc= new Scanner(System.in);
  StringBuffer sb= new StringBuffer(100);
  while(sc.hasNextLine()){
   sb.append(sc.nextLine());
   //sb.append(System.getProperty("line.seperator"));
   }
   tekst= sb.toString();
  }
 
 public void telWoorden() {
  for(int i=0;i<tekst.length();i++){
   if(tekst.charAt(i)==' '){
    aantalWoorden++;
   }
  }
  System.out.println("Aantal woorden:"+aantalWoorden);
  
 }
 
 public String Omgekeerd() {
  StringBuffer sb= new StringBuffer(tekst.length());
  int lengte= tekst.length();
  for(int i=lengte-1;i>=0;i--){
   sb.append(tekst.charAt(i));
  }
  return sb.toString();
 }
  
 }

public class MainTekstInlezen {
 public static void main(String[]args){
  TekstInlezen tekst= new TekstInlezen("abc");
  
  System.out.println("Geef tekst in:");
  tekst.lees();
  System.out.println("Aantal woorden tellen:");
  tekst.telWoorden();
  System.out.println("Tekst Omgekeerd:");
  tekst.Omgekeerd();
 }
}
 
Laatst bewerkt door een moderator:
waar heb je MainTekstInlezen gedeclareerd? hij geeft namelijk de fout dat die niet gedeclareerd is in de file.
 
Prettig kerstfeest terug gewenst!
Ik heb 2 aparte klassen gemaakt voor het programma. Werkt via object-oriëntatie.
Het best is om ze te testen in JCreator, Eclipse
en daarin dan ook 2 aparte klassen te voorzien.
mvg,
 
als je dan alle klassen gewoon even post kunnen we ze testen
 
De klasse omvat de broncode die ik gegeven heb in mijn bericht.
Je moet gewoon 2 klassen aanmaken via JCreator met de namen:
-TekstInlezen.java
-MainTekstInlezen.java
En daarna mijn broncode daarin kopiëren.
mvg,
 
het is iets gemakelijker als je een code tag gebruikt door op # te klikken

Code:
public class TekstInlezen{
	private String tekst;
	private int aantalWoorden=0;
	public TekstInlezen(String s){
		tekst=s;
	}
	public TekstInlezen(TekstInlezen t){
		tekst=t.tekst;
	}
	public void lees(){
		Scanner sc= new Scanner(System.in);
		StringBuffer sb= new StringBuffer(100);
		while(sc.hasNextLine()){
			sb.append(sc.nextLine());
			//sb.append(System.getProperty("line.seperator"));
		}
		tekst= sb.toString();
	}
	public void telWoorden() {
		for(int i=0;i<tekst.length();i++){
			if(tekst.charAt(i)==' '){
				aantalWoorden++;
			}
		}
		System.out.println("Aantal woorden:"+aantalWoorden);
	}
	public String Omgekeerd() {
		StringBuffer sb= new StringBuffer(tekst.length());
		int lengte= tekst.length();
		for(int i=lengte-1;i>=0;i--){
			sb.append(tekst.charAt(i));
		}
		return sb.toString();
	}
}

en dan je main
Code:
public class MainTekstInlezen{
	public static void main(String[]args){
		TekstInlezen tekst= new TekstInlezen("abc");
		System.out.println("Geef tekst in:");
		tekst.lees();
		System.out.println("Aantal woorden tellen:");
		tekst.telWoorden();
		System.out.println("Tekst Omgekeerd:");
		tekst.Omgekeerd();
	}
}
dit gebeurde als in in eclipse rechts klikte op =>Source =>corect indentation of kort ctrl +i
 
Als je geen fouten meer krijgt met je code nog wel goed testen hé.

Input als [spatie]Tekst of zelf [spatie]tekst[spatie] moeten niet 2 of zelfs 3 al resutaat voor het aantal woorden geven.
Alleen een controle op het aantal spaties is denk ik wat erg kort door de bocht om (altijd) het juiste antwoord te krijgen.
 
Laatst bewerkt:
Als je geen fouten meer krijgt met je code nog wel goed testen hé.

Imput als [spatie]Tekst of zelf [spatie]tekst[spatie] moeten niet 2 of zelfs 3 al resutaat voor het aantal woorden geven.
Alleen een controle op het aantal spaties is denk ik wat erg kort door de bocht om (altijd) het juiste antwoord te krijgen.

o ik heb niet op fouten getest ik heb enkel duidelijk gemaakt dat het voor ons gemakelijker is propere code te krijgen voor de korte tijd dat we het willen bekijken.
en code tag gebruiken het ook gemakelijker maakt of zo zou het moeten overkomen
 
De opmerking was ook niet voor jou maar voor bo110 bedoeld. :D
 
Kan er iemand van jullie de fout uithalen, want programma werkt niet zoals het hoort.
mvg,
 
kan je me vertellen wat hier de bedoeling van is

Code:
	public TekstInlezen(TekstInlezen t){
		tekst=t.tekst;
	}
 
dat was een copy-constructor, maar is in principe overbodig aan deze oefening.
mvg,
 
dat was een copy-constructor, maar is in principe overbodig aan deze oefening.
mvg,


maar ik was gewoon aan het zeggen dat het niet kan .
je heeft een object mee aan een nieuw object waarvan je niet aan de variabele kan omdat het privaat is dus vroeg ik me af waarom. Snel verwijderen voor je leraar het ziet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan