Programmierung < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe | W¨ahrend eines Softwareentwicklungsprojekts tragen die Entwickler die von Ihnen beseitigten
Fehler in eine Datei bugfixes.txt ein.
Eine Zeile der Datei besteht jeweils aus 3 Eintr¨agen: Art des Fehlers,
Zeilennummer der ¨Anderung und Name des Entwicklers.
Schreiben Sie ein Programm, das f¨ur einen Entwickler die Anzahl der von ihm durchgef¨uhrten
Bugfixes z¨ahlt und ausgibt. Der Name des Entwicklers soll dabei vom Programm aus von
dem Benutzer erfragt werden.
Syntaxfehler 20056 IngoIngenieur
Logikfehler 123 MaxMathematiker
Syntaxfehler 9999 MaxMathematiker
Logikfehler 55667 PaulPhysiker
Syntaxfehler 66557 TomTechniker
Designfehler 42 KarlaKuenstler
Laufzeitfehler 74430 TomTechniker
Designfehler 999 MaxMathematiker
Syntaxfehler 55667 PaulPhysiker
Syntaxfehler 199 IngoIngenieur
Logikfehler 9119 MaxMathematiker |
import java.util.Scanner; // importiert den scanner
import java.io.*; // zum einlesen und ausgeben der datei erforderlich
public class Fehlerliste
{
public static void main(String[] args)
{
try
{
String zeile;
Scanner datei = new Scanner(new File("bugfixes"));
while(datei.hasNextLine())
{
zeile = datei.nextLine();
Scanner s = new Scanner(zeile);
while(s.hasNext())
{
}
}
}
catch(FileNotFoundException e)
{
}
}
}
kann mir einer weiterhelfen einen tipp geben wie ich das vielleicht lösen könnte, ich hab bisher nur obiges geschafft aber weiter bin ich nicht gekommen. ich weiß nicht wie ich abfragen soll ob in einer zeile TomTechniker oder MaxMathematiker oder PaulPhysiker vorhanden ist
|
|
|
|
Hallo
ich würde dir statt des Scanners den StringTokenizer empfehlen. Damit kannst du immer alles bis zum nächsten Leerzeichen auslesen, also auch den Namen. Der kannst du dann mit .equals wie üblich in java vergleichen
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:34 Mo 12.01.2009 | Autor: | bazzzty |
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
> public class Fehlerliste
> {
> public static void main(String[] args)
> {
> try
> {
> String zeile;
> Scanner datei = new Scanner(new File("bugfixes"));
>
> while(datei.hasNextLine())
> {
> zeile = datei.nextLine();
> Scanner s = new Scanner(zeile);
s.findInLine("(\\w+)\\s(\\d+)\\s(\\w+)");
String name = s.match().group(3);
...
So extrahierst Du den Namen. In meinen Augen eleganter als ein Tokenizer, aber Du mußt dann zumindest verstehen, was ein regulärer Ausdruck ist.
> kann mir einer weiterhelfen einen tipp geben wie ich das
> vielleicht lösen könnte, ich hab bisher nur obiges
> geschafft aber weiter bin ich nicht gekommen. ich weiß
> nicht wie ich abfragen soll ob in einer zeile TomTechniker
> oder MaxMathematiker oder PaulPhysiker vorhanden ist
Anfängergerechter ist vielleicht ein StringTokenizer, wie in der anderen Antwort vorgeschlagen, es sei denn, ihr sollt den Scanner benutzen.
|
|
|
|