Java In der Ausgabe soll der Anfangsbuchstabe sowie der letzte Buchstabe vernichtet werden, wie stelle ich das an?

vram78

Lieutenant
Registriert
Dez. 2015
Beiträge
720
Hallo,

Es geht um die Programmiersprache Java.
Hier eine Aufgabe, die ich im Internet gefunden habe und die mich gerade interessiert:

Schreibe ein Programm, dass einen String liest, und den selben String dann ausgibt. Lediglich mit dem Unterschied, dass das erste und das letzte Zeichen gelöscht wird. --> Mindestlänge des Inputs: 2 Zeichen.​
Beispiel: Bei der Eingabe ,,Hallo" soll dann als Ausgabe ,,all" rauskommen.​
Ich habe es folgendermaßen bewerkstelligt:​
Java:
public class Test {
    //import Scannerklasse...

public static void main(String args) {

    Scanner input = new  Scanner(System.in)
   
        input.nextLine();
        if(input.CHARACTER_LENGTH <= 2) {
            System.out.println("Fehler");
           
        } else {
                 Input.deleteLastLetterAndFirstLetter();
        }
    System.out.println(Input);
}
}
Leider klappt wieder mal gar nichts.. Eventuell könnte mir jemand auf die Sprünge helfen.​
Mit freundlichen Grüßen​
 
Wo soll man da anfangen?

Ohne genau recherchiert zu haben:
input ist nicht die Eingabe, sondern ist dein Weg, die Eingabe entgegen zu nehmen - über nextLine().
input.CHARACTER_LENGTH sagt nichts über die Eingabe, es ist ein konstanter Wert, der sagt nur, wie viel Byte ein Zeichen einnimmt... deine Prüfung wird also immer gleich sein.

Also nextLine() liefert dir einen Wert vom Typ String. Den musst du analyisieren:
String text = input.nextLine();
 
Hi,
erstens ist deine if-Abfrage falsch, es muss strikt kleiner und nicht kleiner gleich sein.
Persönlich würde ich den umständlichen Ansatz nehmen und eine Schleife von 2 bis character_length-1 machen und einzeln die Buchstaben zu einem neuen String machen :D
PS: Ich hab keine Ahnung von Java, aber sowas ist ja in jeder Programmiersprache ziemlich identisch.
 
tollertyp schrieb:
Wo soll man da anfangen?

Ohne genau recherchiert zu haben:
input ist nicht die Eingabe, sondern ist dein Weg, die Eingabe entgegen zu nehmen - über nextLine().
input.CHARACTER_LENGTH sagt nichts über die Eingabe, es ist ein konstanter Wert, der sagt nur, wie viel Byte ein Zeichen einnimmt... deine Prüfung wird also immer gleich sein.

Also nextLine() liefert dir einen Wert vom Typ String. Den musst du analyisieren:
String text = input.nextLine();
Java:
public class Test {
    //import Scannerklasse...

public static void main(String args) {

    Scanner input = new  Scanner(System.in)
  
       String Text = input.nextLine();
    
        if(Text.CHARACTER_LENGTH <= 2) {
            System.out.println("Fehler");
          
        } else {
                 Text.deleteLastLetterAndFirstLetter();
        }
    System.out.println(Text);
}
}
 
Was benutzt du denn zur Entwicklung?

Würde dir eine Entwicklungsumgebung (IDE) wie IntelliJ IDEA, Eclipse, oder mein Gott sogar NetBeans empfehlen.
Dort bekommst du auch Feedback, und das sagt dir dann auch, was nicht geht. Und viel besser: die machen auch Vorschläge, wenn du tippst.

Wenn du was lernen willst, dann fange auch an, Dinge nachzuschlagen bzw zu recherchieren.

Du willst die Länge des Textes? Hey, wie lange ein String in Java ist, kann man sich ergooglen.
https://www.google.com/search?q=java+string+länge+ermitteln

@stfotequila: Ich würde einfach einen substring machen... auch das ist in vielen Programmiersprachen ähnlich... wozu dann eine Schleife?
 
'...im internet gefunden...'

'habe das gemacht...'

'einen zufällig passenden funktionsnamen ohne sinn bzw ohne funktion'


- noch nicht mal die funktion oder sonstiges - schulaufgabe/uni?
 
  • Gefällt mir
Reaktionen: Zerstoerer, Drexel und mental.dIseASe
Ursprünglich Fortran aber mittlerweile auch Python. Ich vergesse auch immer die ganzen Funktionen wie das oben genannte [1:-1] :( aber meine Lösung würde trotzdem ans Ziel führen :D
Egal, genug OT.
 
  • Gefällt mir
Reaktionen: adAstra
sparvar schrieb:
'...im internet gefunden...'

'habe das gemacht...'

'einen zufällig passenden funktionsnamen ohne sinn bzw ohne funktion'


- noch nicht mal die funktion oder sonstiges - schulaufgabe/uni?
Ich bin dabei, Java zu lernen. Ich studiere nicht.

Wieso denn einen zufällig passenden Methodennamen? Man kann ja glaube ich in Java eigene Methoden erstellen. Und so ist es doch einfacher oder irre ich mich
 
Ah, Fortran. "The GREATEST of the programming languages". Da ist noch jemand durch die gute, alte Tretmühle gegangen :D
 
tollertyp schrieb:
Was benutzt du denn zur Entwicklung?

Würde dir eine Entwicklungsumgebung (IDE) wie IntelliJ IDEA, Eclipse, oder mein Gott sogar NetBeans empfehlen.
Dort bekommst du auch Feedback, und das sagt dir dann auch, was nicht geht. Und viel besser: die machen auch Vorschläge, wenn du tippst.

Wenn du was lernen willst, dann fange auch an, Dinge nachzuschlagen bzw zu recherchieren.

Du willst die Länge des Textes? Hey, wie lange ein String in Java ist, kann man sich ergooglen.
https://www.google.com/search?q=java+string+länge+ermitteln

@stfotequila: Ich würde einfach einen substring machen... auch das ist in vielen Programmiersprachen ähnlich... wozu dann eine Schleife?
Einen Texteditor
 
@KuestenNebel Aber selbst in C würde man wohl kaum mit einer Schleife drüber gehen. Man kann einfach direkt alle Daten aus dem Array kopieren: Beim zweiten Element anfangen, Länge der Kopie entspricht der Arraylänge-2.

Genauso würde ich es in Java machen:
Java:
String neuerText = alterText.substring(1,alterText.length()-1);



@vram78 Welchen Texteditor? Notepad++ o.ä. ist das absolute Minimum für Programmierung.
Warum probierst du nicht mal VSCodium aus? Da hast du dann auch Refactoring, Vervollständigung etc. und kannst bequem auch weitere Sprachen einbinden. Sonst natürlich auch Eclipse, Netbeans etc.
 
vram78 schrieb:
Man kann ja glaube ich in Java eigene Methoden erstellen. Und so ist es doch einfacher oder irre ich mich

wie sieht den Deine methode aus? was hast du den probiert?
als tipp - schau die string methoden an, probiere rum und lass dir nicht die einfachsten sachen vorkauen.
 
  • Gefällt mir
Reaktionen: Drexel
Fortatus schrieb:
Aber selbst in C würde man wohl kaum mit einer Schleife drüber gehen. Man kann einfach direkt alle Daten aus dem Array kopieren

Moment mal, wo habe ich dazu geraten das so zu machen :D ich habe lediglich erklärt, warum jemand derartige low-level Vorschläge bei einer Sprache bringt, die dafür über wesentlich schönere high-level Konzepte verfügt.
 
@KuestenNebel Ich weiß jetzt wirklich nicht, was davon Low Level und was High Level sein soll. :D Sowohl einfaches, ungeschütztes Kopieren eines Arrays/Buffers, als auch das Kopieren per Schleife finde ich irgendwie primitiv und low level. :D Obwohl mir auf Anhieb auch keine bessere Herangehensweise in C einfällt. Naja, nicht mein Metier...
 
  • Gefällt mir
Reaktionen: adAstra
Zurück
Oben