Newline zeichen entfernen



  • Normalerweise Programmiere ich ja C#, da habe ich dieses Problem garnicht.

    Also: mit dem Code

    private static String GetInputLine()
    	{
    		byte buffer[] = new byte[25];
    		String input = "";
    		int read;
    		try
    		{
    	        // Einlesen der Zeichen
    	        read = System.in.read(buffer, 0, 25);
    	        // Umwandeln des Pufferinhaltes in einen String
    	        input = new String(buffer, 0, read);
    		}
    	    catch(Exception e)
    		{
    	    	//rudimäntäre Ausnahmebehandlung
    	    }
    
    	    return input;
    	}
    

    Lese ich das ein was mir der User in die Konsole schreibt. Funktioniert auch wunderbar. Mein Problem:
    Ich möchte am Ende das Newline zeichen (\n) weghaben. Ich hab schon nach C# manier versucht das über String.Substring() zu entfernen. An sich verschwindet es auch. Aber irgendwie kommt noch nicht die Lösung dabei raus die ich mir vorstelle, obwohl ich da Problem nicht kenne. DENN:

    Gebe ich am Bildschirm zum Beispiel "Wasserstoff" ein und übertrage dies in die Variable "input", schneide dann die letzten zwei Buchstaben weg, UND dann vergleiche ich "input" direkt mit dem Wort "Wasserstoff" kommt immernoch FALSE raus.

    hier ein beispiel wie ich das meine:

    //ich gehe mal davon aus dass ich obige Funktion GetInputLine() in meiner Klasse zur verfügung habe
    
    string input = GetInputLine();
    input = input.substring(0, input.length() - 2);
    
    //ich nehme mal an der User hat Wasserstoff eingetippt
    System.out.print((input == "Wasserstoff")); //das ergibt FALSE obwohl input den der Wasserstoff hat
    

    Und das Raff ich nicht.

    Bitte helft mir weiter.

    Gruß

    Markus Seidl



  • Das wird imme false ergeben.

    == vergleicht nicht den Inhalt der Strings, sondern eher die Referenzen an sich.
    Wenn du den Inhalt der beiden String vergleichen willst, solltest du mit equals() arbeiten.

    Aber wegen dem Problem mit "\n" wäre vll folgendes besser:

    if (input.indexOf("Wasserstoff") != -1) {
    ...
    }



  • Aye Merci Dir. Jetzt funktionierts. Java war noch nie meine Lieblingssprache ;). Ich machs ja eigentlich nur weil mein Bruder meine Hilfe braucht.

    Also danke nochmals.

    Gruß

    Markus Seidl


Log in to reply