import java.io.*;
import java.util.*;
public class Sprachen
{
private static int englisch = 0;
private static int deutsch = 0;
private static void istDeutsch(String satz)
{
String[] temp2 = satz.split(" ");
for(int i =0; i<temp2.length; i++)
{
String wort2 = temp2[i];
if(wort2.equals("der") || wort2.equals("die") ||
wort2.equals("und") || wort2.equals("in") ||
wort2.equals("den") || wort2.equals("von") ||
wort2.equals("das") || wort2.equals("mit") ||
wort2.equals("zu") || wort2.equals("sich") ||
wort2.equals("dies") || wort2.equals("ein") ||
wort2.equals("ich") || wort2.equals("Ich"))
{
deutsch++;
}
}
}
private static void istEnglisch(String satz)
{
String[] temp = satz.split(" ");
for(int i =0; i<temp.length; i++)
{
String wort = temp[i];
if(wort.equals("is") || wort.equals("a") ||
wort.equals("I") || wort.equals("of") ||
wort.equals("to") || wort.equals("and") ||
wort.equals("for") || wort.equals("the") || wort.equals("that")
|| wort.equals("on") || wort.equals("are"))
{
englisch++;
}
}
}
public static void main (String[] args)
{
try
{
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null)
{
istDeutsch(line);
istEnglisch(line);
}
}
catch(IOException ex)
{
System.out.println(ex);
}
if(englisch > deutsch)
{
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
}
else if(deutsch > englisch)
{
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
}
else
{
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
}
HashSet english=new HashSet();
english.add("the");
english.add("a");
if(english.contains(word))
englisch++;
Set english = ... // wird irgendwo gefüllt
if( english.contains( word )){
// das word war in der Menge "english".
}
private static void istDeutsch(String satz)
{
String[] temp2 = satz.split(" ");
for(int i =0; i<temp2.length; i++)
{
String wort2 = temp2[i];
HashSet german = new HashSet();
german.add("der");
german.add("die");
german.add("das");
german.add("ist");
german.add("war");
german.add("dies");
german.add("ein");
german.add("Ich");
german.add("von");
german.add("den");
german.add("für");
german.add("in");
german.add("dem");
german.add("mit");
german.add("sich");
if(german.contains( wort2 )
{
deutsch++;
}
}
die Map nur EINMAL erzeugen und füllen, und dann wiederverwenden,
'der' muss dir doch eine Zeile nennen, ansonsten würde ich mir schleunigst einen 'anderen' suchen
X-Treme hat gesagt.:Wo füll ich die den mehrmals? Ich sag "Ihm" doch nur HashSet und was darein kommt! und dann bleibt das doch drin oder wie ist das?
private static Map german..
private static void istDeutsch(String satz)
{
if (german== null) {
fill german..
}
String[] temp2 = satz.split(" ");
for(int i =0; i<temp2.length; i++)
{
String wort2 = temp2[i];
if(german.contains( wort2 ))
{
deutsch++;
}
}
import java.util.*;
public class Words {
// das HashSet-Objekt
private HashSet woerter;
// die Zaehlervariable
private int matchcount;
// Konstruktor
public Words (String[] wort) {
// Klasse wird neu erstellt ergo Zaehler auf 0
matchcount = 0;
// die übergebenen Woerter ab ins HashSet
woerter = new HashSet();
for ( int i = 0; i < wort.length; i++) {
woerter.add(wort[i]);
}
}
/*
* Vergleicht den Inhalt von Satz mit dem HashSet
*/
public void checkMatched(String satz) {
String[] tmp = satz.split(" ");
for ( int i = 0; i < tmp.length; i++) {
if (woerter.contains(tmp[i]))
matchcount++;
}
}
/*
* gibt die Treffer aus
*/
public int getMatchCount() {
return matchcount;
}
}
...
Words english = new Words("is", "a","of", "to","and","for","the","that","on","are");
Words german = new Words("der","die","und","in","den","von","das","mit");
....
wenn nirgendwo die Zeile angegeben ist, dann kann man nicht mehr viel machen,
wer sagt dir das denn?,
benutzt du javac Klasse.java in der Konsole oder welches Programm?
public static void main (String[] args)
{
try
{
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null)
{
istDeutsch(line);
istEnglisch(line);
Words english = new Words("is", "a","of", "to","and","for","the","that","on","are");
Words german = new Words("der","die","und","in","den","von","das","mit");
}
}
catch(IOException ex)
{
System.out.println(ex);
}
if(englisch > deutsch)
{
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
}
else if(deutsch > englisch)
{
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
}
else
{
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
}
public static void main (String[] args)
{
try
{
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null)
{
Words english = new Words("is", "a","of", "to","and","for","the","that","on","are");
Words german = new Words("der","die","und","in","den","von","das","mit");
}
}
catch(IOException ex)
{
System.out.println(ex);
}
if(Words english)
{
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
}
else if(Words german)
{
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
}
else
{
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
public static void main (String[] args) {
try {
Words english = new Words("is", "a","of", "to","and","for","the","that","on","are");
Words german = new Words("der","die","und","in","den","von","das","mit");
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null) {
english.checkMatched( line);
german.checkMatched( line);
}
} catch(IOException ex) {
System.out.println(ex);
}
if( english.getMatchCount() > german.getMatchCount()) {
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
} else if( german.getMatchCount() > english.getMatchCount()) {
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
} else {
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
public static void main (String[] args)
{
Words english = new Words("is", "a","of", "to","and","for","the","that","on","are");
Words german = new Words("der","die","und","in","den","von","das","mit");
try
{
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null)
{
english.checkMatched(line);
german.checkMatched(line);
}
}
catch(IOException ex)
{
System.out.println(ex);
}
int numberGerman = german.getMatchCount();
int numberEnglish = english.getMatchCount();
if(numberGerman > numberEnglish )
{
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
}
else if(numberEnglish > numberGerman)
{
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
}
else
{
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
wenn du nicht weißt, wie man die neue Klasse einsetzt,
dann frage lieber direkt, statt sowas zu posten,
import java.util.*;
import java.io.*;
public class Words
{
private HashSet woerter;
private int matchcount;
public Words (String[] wort)
{
matchcount = 0;
woerter = new HashSet();
for ( int i = 0; i < wort.length; i++)
{
woerter.add(wort[i]);
}
}
public void checkMatched(String satz)
{
String[] tmp = satz.split(" ");
for ( int i = 0; i < tmp.length; i++)
{
if (woerter.contains(tmp[i]))
{
matchcount++;
}
}
}
public int getMatchCount()
{
return matchcount;
}
public static void main (String[] args)
{
try
{
String[] english = new String[]{"a", "is", "are", "am", "this", "I"};
String[] german = new String[]{"der", "die", "das", "ist", "dies", "Ich", "einem", "eine", "mit", "für"};
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null)
{
english.checkMatched( line);
german.checkMatched( line);
}
}
catch(IOException ex)
{
System.out.println(ex);
}
if( english.getMatchCount() > german.getMatchCount())
{
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
}
else if( german.getMatchCount() > english.getMatchCount())
{
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
}
else
{
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
}
siehe auch mein Post kurz vor deinem falls beim Schreiben übersehen
X-Treme hat gesagt.:Ohne irgendwelche Fehlermeldungen zu posten^^ Ich hab auf jeden Fall noch 4 Fehler und eine Warnung
ich hatte ja schonmal irgendwo
int numberGerman = german.getMatchCount();
int numberEnglish = english.getMatchCount();
vorgeschlagen, mit diesen ints kannst du alles mögliche machen,
was da nun dein Problem ist wird noch nicht klar
import java.util.*;
import java.io.*;
public class Words
{
private HashSet woerter;
private int matchcount;
public Words (String[] wort)
{
matchcount = 0;
woerter = new HashSet();
for ( int i = 0; i < wort.length; i++)
{
woerter.add(wort[i]);
}
}
public void checkMatched(String satz)
{
String[] tmp = satz.split(" ");
for ( int i = 0; i < tmp.length; i++)
{
if (woerter.contains(tmp[i]))
{
matchcount++;
}
}
}
public int getMatchCount()
{
return matchcount;
}
public static void main (String[] args)
{
try
{
String[] englishArray = new String[]{"a", "is", "are", "am", "this", "I"};
String[] germanArray = new String[]{"der", "die", "das", "ist", "dies", "Ich", "einem", "eine", "mit", "für"};
int numberGerman = german.getMatchCount();
int numberEnglish = english.getMatchCount();
Words english = new Words(englishArray);
Words german = new Words(germanArray );
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null)
{
english.checkMatched( line);
german.checkMatched( line);
}
}
catch(IOException ex)
{
System.out.println(ex);
}
if( numberEnglish > numberGerman )
{
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
}
else if( numberGerman > numberEnglish )
{
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
}
else
{
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
}
Vielleicht solltest du dir mal die Reihenfolge anschauen...
String[] englishArray = new String[]{"a", "is", "are", "am", "this", "I"};
String[] germanArray = new String[]{"der", "die", "das", "ist", "dies", "Ich", "einem", "eine", "mit", "für"};
Words english = new Words(englishArray);
Words german = new Words(germanArray );
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null)
{
//...
german.checkMatched( line);
}
int numberGerman = german.getMatchCount();
int numberEnglish = english.getMatchCount();
if( numberEnglish > numberGerman )
{
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
}
else if( numberGerman > numberEnglish )
{
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
}
else
{
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
}
Pack das try vor die Zuweisung des BufferedReaders.
.....
try
{
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null)
{
....
Aber wer weiß schon (außer dir), was du nun wieder gemacht hast? icon_wink.gif
import java.util.*;
import java.io.*;
public class Words
{
private HashSet woerter;
private int matchcount;
public Words (String[] wort)
{
matchcount = 0;
woerter = new HashSet();
for ( int i = 0; i < wort.length; i++)
{
woerter.add(wort[i]);
}
}
public void checkMatched(String satz)
{
String[] tmp = satz.split(" ");
for ( int i = 0; i < tmp.length; i++)
{
if (woerter.contains(tmp[i]))
{
matchcount++;
}
}
}
public int getMatchCount()
{
return matchcount;
}
public static void main (String[] args)
{
String[] englishArray = new String[]{"a", "is", "are", "am", "this", "I"};
String[] germanArray = new String[]{"der", "die", "das", "ist", "dies", "Ich", "einem", "eine", "mit", "für"};
Words english = new Words(englishArray);
Words german = new Words(germanArray );
try
{
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null)
{
int numberGerman = german.getMatchCount();
int numberEnglish = english.getMatchCount();
english.checkMatched( line);
german.checkMatched( line);
}
}
catch(IOException ex)
{
System.out.println(ex);
}
if( numberEnglish > numberGerman)
{
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
}
else if( numberGerman > numberEnglish)
{
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
}
else
{
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
}
import java.util.*;
import java.io.*;
public class Words {
private HashSet woerter;
private int matchcount;
public Words (String[] wort) {
matchcount = 0;
woerter = new HashSet();
for ( int i = 0; i < wort.length; i++) {
woerter.add(wort[i]);
}
}
public void checkMatched(String satz) {
String[] tmp = satz.split(" ");
for ( int i = 0; i < tmp.length; i++) {
if (woerter.contains(tmp[i])) {
matchcount++;
}
}
}
public int getMatchCount() {
return matchcount;
}
public static void main (String[] args) {
String[] englishArray = new String[]{"a", "is", "are", "am", "this", "I"};
String[] germanArray = new String[]{"der", "die", "das", "ist", "dies", "Ich", "einem", "eine", "mit", "für"};
Words english = new Words(englishArray);
Words german = new Words(germanArray );
try {
BufferedReader stdin = new BufferedReader(new FileReader("/home/lars/sprache.txt"));
String line;
while( (line = stdin.readLine()) != null) {
english.checkMatched( line);
german.checkMatched( line);
}
} catch(IOException ex) {
System.out.println(ex);
}
int numberGerman = german.getMatchCount();
int numberEnglish = english.getMatchCount();
if( numberEnglish > numberGerman ) {
System.out.println("Der Text in der Datei ist wahrscheinlich englisch");
} else if( numberGerman > numberEnglish ) {
System.out.println("Der Text in der Datei ist wahrscheinlich deutsch");
} else {
System.out.println("Der Text in der Datei ist wahrscheinlich weder deutsch noch englisch!");
}
}
}
AlArenal hat gesagt.:hab den Murray ganz überlesen (sorry, Matthias![]()
Du aber hast die beiden Zeilen in die while-Schleife gepackt.