Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Dein Code von eben sollte funktionieren, wenn du dich noch entscheidest, ob du die Klasse jetzt vornamen oder Vornamen nennen willst.
Dann hast du also am Ende der main eine Variable vom Typ boolean, die dann true ist, wenn der Name (nach diesem simplem Ansatz) vermutlich weiblich ist. Und jetzt willst du das Ergebnis noch ausgeben? Wie könnte das wohl gehen? System.out.println() hast du ja schon verwendet, und if sollte dir auch ein Begriff sein...
import java.io.*;
public class vornamen {
protected boolean istVokal( char c) {
char[] vokaleArray = { 'a', 'e', 'i', 'o', 'u' };
for ( int i=0; i < vokaleArray.length; i++)
{
if ( c == vokaleArray[i]) return true;
}
return false;
}
public boolean endedMitVokal( String str) {
if ( (str == null) || (str.length() == 0)) return false;
return istVokal( str.charAt( str.length()-1));
}
public static void main(String[] args)throws IOException {
System.out.println("Bitte geben sie einen Vornamen ein: ");
BufferedReader name = new BufferedReader( new InputStreamReader(System.in));
String vorname = name.readLine();
System.out.println("Der Vorname lautet: " +vorname);
Vornamen vn = new Vornamen();
boolean weiblich = vn.endedMitVokal( vorname);
if(weiblich = vn.endedMitVokal)
{
System.out.println("weiblich");
}
}
}
Wenn ich das so mache spuckt er wieder 2 Fehlermeldungen aus und zwar:
javac vornamen.java
vornamen.java:26: cannot find symbol
symbol : class Vornamen
location: class vornamen
Vornamen vn = new Vornamen();
^
vornamen.java:26: cannot find symbol
symbol : class Vornamen
location: class vornamen
Vornamen vn = new Vornamen();
^
2 errors
Warum?
Jo das Problem hatte ich auch! Die Aufgabe ist nicht 100&tig zu lösen! Aber man kann bis zu naja sagen wir mal 98% alle Namen abfangen!
Es kommt halt drauf wie viel arbeit man sich machen will^^
Ich hab das Prog jetzt so geschrieben, dass wenn man z.B. einen Namen wie Jacky eingibt er mir ne Liste ausspuckt mit den 10 beliebtesten Namen die so sind!
Such mal bei Wiki nach 80-20Regel! Da wird die erklärt, was es damit auf sich (falls es dich intressiert heißt das^^)
Auf 98% kommst du mit dem Ansatz aber selbst dann nicht, wenn du dich auf die gängigsten deutschen Vornamen beschränkst.
Wenn man jetzt fremdsprachliche Namen dazunimmt, sieht es wohl ganz bitter aus. In diesem Fall würde ich einen Algorithmus von geradezu beeindruckend schlichter Eleganz vorschlagen, dessen Erkennungsrate angesichts der Tatsache, dass weltweit geringfügig mehr Jungen als Mädschen geboren werden und es daher vermutlich auch mehr Jungen- als Mädchennamen gibt, immerhin bei etwas mehr als 50 % liegt:
Code:
public static void main(String[] args) {
try {
System.out.println("Bitte geben sie einen Vornamen ein: ");
BufferedReader name = new BufferedReader( new InputStreamReader(System.in));
String vorname = name.readLine();
System.out.println("Der Vorname " +vorname + " ist vermutlich männlich");
} catch ( Exception e) {
e.printStackTrace();
}
Auf 98% kommst du mit dem Ansatz aber selbst dann nicht, wenn du dich auf die gängigsten deutschen Vornamen beschränkst.
Wenn man jetzt fremdsprachliche Namen dazunimmt, sieht es wohl ganz bitter aus. In diesem Fall würde ich einen Algorithmus von geradezu beeindruckend schlichter Eleganz vorschlagen, dessen Erkennungsrate angesichts der Tatsache, dass weltweit geringfügig mehr Jungen als Mädschen geboren werden und es daher vermutlich auch mehr Jungen- als Mädchennamen gibt, immerhin bei etwas mehr als 50 % liegt:
Code:
public static void main(String[] args) {
try {
System.out.println("Bitte geben sie einen Vornamen ein: ");
BufferedReader name = new BufferedReader( new InputStreamReader(System.in));
String vorname = name.readLine();
System.out.println("Der Vorname " +vorname + " ist vermutlich männlich");
} catch ( Exception e) {
e.printStackTrace();
}
}
Hat den irgendjemand ne Idee wie man folgendes Problem lösen könnte? Also ich will mit ner If-Anweisung sagen, dass wenn jemand Sascha, Jacky oder Micha eingibt, dass Prog ausspuckt, dass bei diesem Namen beides der Fall ist! Und das zweite wäre, dass wenn jemand einen dieser Namen eingibt:
weiblich: (ohne a, e, i, o, u)
also die zweite Anforderung funktioniert doch schon oder nicht?
wenn nicht dann beschreibe was nicht geht,
zum ersten:
du brauchst im Programm ein String-Array mit den vakanten Namen,
dann prüfst du zuerst, ob der Namensstring in dem Array enthalten ist (durchlaufen und mit equals vergleichen),
wenn ja dann Ausgabe, ansonsten der zweite Schritt mit den Vokalen
Ich würde gern in mein Prog eine weitere Methode einbauen! Ich hab versucht, dass mit equals zu machen, aber hat net gefunzt! Was ich muss beachten wenn ich eine weitere Methode einsetzen will und wo sollte die methode mit equals im Prog stehen?