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.
Ich habe eine Aufgabe bekommen bei der ich net weiter komme!
Also ich soll ein kleines Programm schreiben mit Java, welches mir nach Eingabe eines Vornamens ausgibt ob dieser Vorname männlich oder weiblich ist!
Kann mir da irgendjemand weiterhelfen? Die Sache ist die, ich benutze normalerweise kein Java! Ich kenn mich nur ein wenig mit C++ aus! Was mir natürlcih trotzdem hilft! Aber hierbei werd ich noch verrückt! Ich bitte um schnelle Antworten! :meld:
Die Programmiersprache dürfte hier wohl kaum das echte Hindernis sein; der Code wird in Java ähnlich aussehen wie in C++, nur dass hier die APIs für Konsoleneingabe und Stringverarbeitung etwas anders sind.
Das Problem ist aber doch die Fachlichkeit: wie soll das Programm denn erkennen, ob es sich um männliche oder weibliche Vornamen handelt? Wird eine Liste hinterlegt? Oder soll das algorithmisch geschehen (dürfte unmöglich vollständig zu lösen sein)
Hey Leute,
Also ich soll ein kleines Programm schreiben mit Java, welches mir nach Eingabe eines Vornamens ausgibt ob dieser Vorname männlich oder weiblich ist!
Viele Grüße X-Treme
Servus,
also ich denke entweder willst Du uns veralbern, wenn nicht müsste die Eingabe etwa Fr. Maier oder Hr. Müller lauten.
Ansonsten nimmst Du sämtliche Namensbücher und tippst die Namen ab und speicherst Sie in einem Array mit Angabe (männl., weiblich).
Danach vergleichst Du.
Es muss irgendwie funktionieren ohne, dass man eine Datenbank mit Namen oder ähnliches zur Verfügung hat! Ein richtiges JAVA Problem ist das nicht, aber ich muss es halt in JAVA Programieren! Das Programm gibt es schon!
Ich hab mir gedacht, dass ich (da so ziemlich alle weiblichen Vornamen mit a oder e enden) vielleicht dem Programm irgendwie sagen könnte, dass es nur den letzten Buchstaben ausliest und dann in eine If-Anweisung verpacke!
..möglich schon, nur was erwartest Du jetzt von uns?
Sollen wir jetzt Dir Beispiele liefern, die Du dann einfach kupferst?
Mach mal ein Beispiel (Code) und wenn Du nicht mehr weiter weißt dann poste Dein Problem!
..jo, gibt es, heißt substring!
Nehmen wir mal an Dein Eingabestring lautet eingabe dann würde die Ermittlung des letzten Buchstabens etwa so aussehen:
Code:
String s = eingabe.substring(eingabe.lenght()-1);
..jetzt hast Du in s den letzten Buchstaben des Eingabestrings!
Ich hab mir gedacht, dass ich (da so ziemlich alle weiblichen Vornamen mit a oder e enden) vielleicht dem Programm irgendwie sagen könnte, dass es nur den letzten Buchstaben ausliest und dann in eine If-Anweisung verpacke!
Ich bin im Praktikum und lerne den Umgang mit JAVA! Mein Betreuer hat mir die Aufgabe gegeben, ein Prog zu schreiben, dass bei Eingabe des Vornamens ausgibt ob der Name männlich oder weiblich ist! (Wie ober erklärt!)
Er hat gesagt, dass sich das Prog KEINE Daten aus irgendeiner Datenbank oder Datei holen soll! Er hat ebenfalls gesagt, dass das Prog nicht viel länger als 10 Zeilen sein kann!
Ich hab jetzt die Methode mit dem letzten Buchstaben probiert! War aber falsch, da es ja auch Namen gibt die nicht a oder e enden z.B. Steffi!
Hat irgendjemand ne Idee was für Merkmale weibliche von männlichen Unterscheiden?
Ja das hab ich mir auch so gedacht, aber der Kerl ist davon überzeugt, dass das klappt! (Ohne DB oder sowas). Ich versteh auf jeden Fall nicht wie das gehen soll?!?!?
Werd ihn morgen mal Fragen, ob er mir das Zeigen kann! Ich poste dann mal den Code!
Damit er für die Nachwelt erhalten bleibt :autsch: :bahnhof:
So ich muss es also doch mit der letzte Buchstaben Methode lösen! Also um erstmal den Großteil aller weiblichen Namen abzufangen, nehme ich einen String mit Vokalen!
so das hab ich bis jetzt!
Code:
mport java.io.*;
public class vornamen
{
public static void main(String[] args)
{
char[] vokaleArray = { 'a', 'e', 'i', 'o', 'u' };
String vokal = new String( vokaleArray ) ;
System.out.println("Bitte geben sie einen Vornamen ein: ");
Bin ich da auf dem richtigen Weg? Und hat vielleicht noch jemand Ideen?
Was willst Du mit den Vokalen denn anfangen? Ist dein Näherungsansatz: Vornamen, die mit einem Vokal enden, werden als weiblich angesehen, alle anderen als männlich?
Dann kannst du dir den String vokale schenken, das Character-Array reicht.
Jo ihr habt ja meinen Quellcode bis jetzt! Ihr hattet ja auch gepostet, dass man den letzten Buchstaben mit nem Substring auslesen kann! So jetzt soll ich das mit endsWith machen ! kann mir mal jemand erklären wo das in dem Quelltext stehen muss?
Da stimmten die Klammern nicht. Übersetzbar sollte es so sein
Code:
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);
}
}
Allerdings schreibt man Klassennamen normalerweise mit einem großen Anfangsbuchstaben.
Jetzt hast du noch das Problem, dass die beiden Hilfsmethoden Instanzmethoden sind (also nicht als "static" deklariert). Aus der main-Methode heraus kannst du sie also nicht direkt verwenden. Hast du selber eine Idee, was man da tun kann?
Nur mal ne kleine Frage: Der Code den du jetzt gepostet hast ist der selbe nur ein bischen anders formatiert oder? Also ich mein schon das komplette Prog mit deinem und meinem Teil?!?!
Fast: bei dir steht am Ende eine geschweifte Klammer mehr. Ansonsten ist der Code hautpsächlich umformatiert; ich habe aber auch noch die - nicht benötgite - Variable vokaleArray aus der main entfernt.
Du brauchst in der main eine Instanz der Klasse; an dieser Instanz kannst du dann die Methoden aufrufen. Alternativ könntest du die Methoden auch als static deklarieren. Das ist aber nur bei so trivialen Aufgaben sinnvoll, normalerweise sollte man die Verwendung von static auf die Fälle beschränken, wo es wirklich notwendig ist. Dazu findest du hier im Forum bestimmt jede Menge Beiträge.
X-Treme hat gesagt.:
Ich möchte also den letzten Buchstanben auslesen und wenn das ein Vokal ist, will ich ausgeben "Der Name ist wahrscheinlich eiblich"!
Eigentlich macht genau das die Methode endedMitVokal (die ich natürlich endetMitVokal hätte nennen sollen - das kommt davon, wenn man Methoden mal deutsch benennt)
Eigentlich macht genau das die Methode endedMitVokal (die ich natürlich endetMitVokal hätte nennen sollen - das kommt davon, wenn man Methoden mal deutsch benennt)
Ja schon klar, aber wo muss ich jetzt das System.out.prinln hinsetzen, wenn ich auf dem Bildschirm ausgeben will, dass der Name wahrscheinlich weiblich usw.
Hmm, was kann man da denn noch erklären? Du hast einen String eingelesen, und du hast eine Methode, die true zurückliefert, wenn der übergebene String mit einem Vokal endet. Also solltest du den eingelesene String dieser Methode übergeben. Da es sich um eine Instanzmethode handelt, erzeugst du vorher eine Instanz:
Code:
Vornamen vn = new Vornamen();
boolean weiblich = vn.endedMitVokal( vorname);
vornamen.java:28: cannot find symbol
symbol : method prinln(java.lang.String)
location: class java.io.PrintStream
System.out.prinln("weiblich");
^
1 error