myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Java Problem

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 13.06.11, 13:46   #1
Mephist0
Teufelskerl
 
Benutzerbild von Mephist0
 
Registriert seit: Jan 2010
Beiträge: 179
Bedankt: 1.643
Mephist0 ist noch neu hier! | 0 Respekt Punkte
Standard Java Problem

Hi zusammen.

Bin in Sachen Java noch ein ziemlich Anfänger und bin auf folgedes Problem gestoßen.

Ich will eine Integer Zahl von der Tastatur einlesen. Anschließend einen String.

Wenn ich jetzt meine Zahl eingelesen hab, wird das Einlesen des Strings einfach übersprungen.

Hier mein Code:

Code:
import java.io.*;
import java.util.Scanner;


public class college_interface {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner( System.in );
		System.out.println("(1) Academic Stuff");
		System.out.println("(2) Student");
		System.out.println("(3) Researcher");
		System.out.println("(4) Other");
		System.out.print("Welcome to the renting agency of our college.\nPlease enter your kind of membership: ");
		
		int number = 0;
		number = scan.nextInt();
		System.out.println("My number: " + number);
		
		if (number == 1)
		{
			System.out.println("\nYou are now logged in as acedmic stuff. \nPlease enter your name: ");
			String name = scan.toString();
			Stuff first = new Stuff(name);
			first.getInfo();
		}
		else
		{
			System.out.println("Incorrect kind of membership.");
		}
	}
	

}
Und das hier wird auf der Console ausgegeben:

Code:
(1) Academic Stuff
(2) Student
(3) Researcher
(4) Other
Welcome to the renting agency of our college.
Please enter your kind of membership: 1
My number: 1

You are now logged in as acedmic stuff. 
Please enter your name: 
Name: class java.util.Scanner: {(delimiter:\p{javaWhitespace}+)(findStartIndex=1)(match succeed=true)(closed=false)}
In c musste man manchmal die Eingabe von Zeilenumbrüchen mit einem "flush" "bereinigen".
Gibt es sowas in die Richtung auch bei Java, oder ist mein Problem wo anders zu Suchen?
Mephist0 ist offline   Mit Zitat antworten
Ungelesen 13.06.11, 14:37   #2
rabite
Anfänger
 
Registriert seit: Jan 2011
Beiträge: 16
Bedankt: 3
rabite ist noch neu hier! | 0 Respekt Punkte
Standard

toString() ist liest keinen String ein sondern liefert die String-Repraesentation des Objekts (bei jedem Objekt) und die wird da ausgegeben - gemeint ist wohl next()
rabite ist offline   Mit Zitat antworten
Ungelesen 13.06.11, 16:42   #3
Pillewutz
Banned
 
Registriert seit: Jun 2011
Beiträge: 62
Bedankt: 40
Pillewutz ist noch neu hier! | 0 Respekt Punkte
Standard

Wie hast Du es geschafft in dem Forum diesen Thread zu eröffnen, wenn es offensichtlich zu schwer war mit Hilfe von google die Java-Docs zu finden und Dir selbst zu helfen?
Pillewutz ist offline   Mit Zitat antworten
Ungelesen 13.06.11, 17:29   #4
Mephist0
Teufelskerl
 
Benutzerbild von Mephist0
 
Registriert seit: Jan 2010
Beiträge: 179
Bedankt: 1.643
Mephist0 ist noch neu hier! | 0 Respekt Punkte
Standard

@rabite: Oh man. Das war es. War ja wieder klar, dass es so n dummer Fehler sein musste.

@Pillewutz:
Das war ganz einfach: Ich hab mir ca 30 Google-Ergebnisse durchgelesen. Rausgefunden, dass es in Java anscheinend an die 10 Zeilen Code bedarf um einfach nur eine Integer-Zahl einzulesen (in c ist das genau EINE Zeile) nur um nach dem 31 Ergebnis dann auf die Scannerklasse zu treffen.
Nach 15 weiteren erfolglosen Ergebnissen bezüglich "zweite Eingabe wird übersprungen" hatte ich keinen Bock mehr und hab hier einen Threat aufgemacht, in dem ich innerhalb von 2 Zeilen eine Lösung gefunden habe, die GENAU auf mein Problem zutrifft.
In diesem Fall war es leider meine Dummheit und ich entschuldige mich dafür, dass dich deswegen belästigen musste.
Mephist0 ist offline   Mit Zitat antworten
Ungelesen 13.06.11, 18:11   #5
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

Edit: Ich zeihe dieses Statement zurück:
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 13.06.11, 19:38   #6
Mephist0
Teufelskerl
 
Benutzerbild von Mephist0
 
Registriert seit: Jan 2010
Beiträge: 179
Bedankt: 1.643
Mephist0 ist noch neu hier! | 0 Respekt Punkte
Standard

Was mich ehrlich gesagt verwirrt hat, ist die Tatsache, dass ich für ein solch einfaches Problem 10 verschiedene Lösungen bekomme und nicht weiß, was ich denn jetzt wirklich verwenden soll...

Aber egal. Ich weiß ja jetzt wies geht
Mephist0 ist offline   Mit Zitat antworten
Ungelesen 13.06.11, 20:00   #7
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

Ok, sehr wahrscheinlich kenne ich mich zu wenig aus in der Java-Szene. Mir ist es eben nur aufgefallen dass mir von anderen Leuten die Java-Programmieren, meist erzählt wird, dass es für eine Aufgabe eben sehr viele verschiedene Funktionen gibt, die alle annähernd das gleiche machen. Aber ich lasse mich gerne belehren und ziehe mein Statement zurück.

Zitat:
Zitat von m9716 Beitrag anzeigen
Aber wem erzähle ich das. Du weißt noch nicht mal was Objektorientierung ist, willst aber in der Java-Szene mitreden ...
Ich habe ich doch schon mal gebeten mir den unterschied aus deiner Sicht zu erklären.
Und in dem bereich habe ich eine Referenz angegeben, nämlich GTK+. Dies ist ein in C programmierter und "Objekt Orientierter" Code.
Also, ich würde mich über eine PN freuen .
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 15.07.11, 17:27   #8
Oetty
Anfänger
 
Registriert seit: Jul 2011
Beiträge: 5
Bedankt: 0
Oetty ist noch neu hier! | 0 Respekt Punkte
Standard

Hallo, auch wenn es nicht zum Thema von oben passt...zumindest nicht ganz...habe ich ne Frage.
Habe den JDK installiert und auch Java(TM) ME Platform SDK 3.0.
Danach schrieb ich wie gewohnt mein Programm (was allerdings noch einiges an überarbeitung und verfeinerung braucht)


Wenn ich das nun kompillieren will kommt im Output folgendes:



was hab ich nur wieder falsch gemacht? Das passiert mir andauernd! Meist is es nur ein ganz simpler Klick oder ein Häckchen was ich falsch gesetzt habe..

Danke schonmal falls mir jemand helfen kann!

Oetty
Oetty ist offline   Mit Zitat antworten
Ungelesen 15.07.11, 17:57   #9
sirleo
is poking \\Device\\Beep
 
Registriert seit: May 2011
Beiträge: 201
Bedankt: 84
sirleo ist noch neu hier! | 0 Respekt Punkte
Standard

@oetty:
Das ist kein Problem deines Codes sondern Deiner Buildumgebung.
Ant ist für Java sowas wie Make für C/C++.
Brauchst du nicht wirklich, einfach mal in der kommanozeile javac ........ eingebeun und gut ist.
Hast deine IDE, wahrscheinlich nicht richtig konfigurert, und diese benutzt ant dann falsch.
Und beim nächste mal nen neuen Thread aufmachen, bei Threadhijaking haste schlechte chancen das dir jemand antwortet(werd dich in zukunft dann auch ignorieren) und es erschwert die suche im Forum sollte jemand mal das gleiche problem haben.

@slahn,Mephist0:
Wiso soviele Zeilen für einen Integer?
Alles was in Java von stdin kommt ist ein string, einfach
string einlesen, nach integer-casten, wenn fehler dann nochmal, eingabe verlange.
da kommen nie im leben 10 zeilen zusammen, und von wege flamewar, will ich auch nicht, bin noch nichtmal javafreundlich, aber was so ist das ist so
__________________
Meine Rechtschreibfehler dürft ihr gerne behalten.
------------------------------------------------------------
Füttere keine Trolle!->Also unterstütz auch nicht Appel.
sirleo ist offline   Mit Zitat antworten
Ungelesen 16.07.11, 12:28   #10
Oetty
Anfänger
 
Registriert seit: Jul 2011
Beiträge: 5
Bedankt: 0
Oetty ist noch neu hier! | 0 Respekt Punkte
Standard

@sirleo:
ja das problem war nur das ich schon nen thread erstellt hatte aber aus irgendwelchen gründen wurde der gelöscht oder nicht richtig akzetiert.
Ja, das hab ich mir aber auch schon fast gedacht das es and der rbuildumgebung liegt...
hab mal nen bisschen dran gebastelt und jetzt klappt alles wieder
Danke
Oetty ist offline   Mit Zitat antworten
Ungelesen 17.07.11, 03:59   #11
Ccursed
Anfänger
 
Registriert seit: Jun 2010
Beiträge: 45
Bedankt: 12
Ccursed ist noch neu hier! | 0 Respekt Punkte
Standard

10 Zeilen sehe ich als zuviel, bei mir hat im Regelfall immer ausgereicht:

Code:
private boolean checkStringIsInteger(char[] list)
{
     for(int i = 0; i < list.length; i++) if(!Character.isDigit(list[i])) return false;
     return true;
}
Sind dann 4, geht vielleicht auch noch irgendwie kürzer, aber liefert was gewünscht ist.
Alternativ geht natürlich auch casten und dann try->catch, aber wieso Exceptions zulassen wenn man es vermeiden kann.
Ccursed ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 Uhr.


Sitemap

().