2017-05-24 1 views
-3

ich eine String durch den Benutzer eingegeben zu umkehren bin versucht, aber ich diesen Fehler erhalte, wenn ich das Programm ausführen:„Die Methode ToCharArray() ist nicht definiert für den Typ Scanner“

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method toCharArray() is undefined for the type Scanner 

Warum bin ich diesen Fehler bekommen? Hier ist mein Programm:

import java.util.Scanner; 

public abstract class StringReverse { 
    public abstract char[] toCharArray(); 
    private static Scanner input; 

    public static <string> void main(String[] args){ 
     System.out.println("Enter a string: "); 
     Scanner String = new Scanner(System.in); 
     String str = input.next(); 
     char[] strArray = input.toCharArray(); 

     for (int i = strArray.length - 1; i >= 0; i--) 
     { 
      System.out.print(strArray[i]); 
     } 
    } 
} 
+3

ändern in 'char [] strArray = str.toCharArray();' –

+5

Ich weiß nicht, wie viel klarer die Ausnahme möglicherweise sein könnte ... – John3136

+1

und ändern 'Scanner String = neuer Scanner (System. in); 'to' input = new Scanner (System.in); ' –

Antwort

2

Sie haben ein paar kleinere Probleme mit Ihrem Code, so dass es nicht korrekt funktionieren:

  1. Änderung Scanner String = new Scanner(System.in); zu input = new Scanner(System.in);

  2. Änderung char[] strArray = input.toCharArray(); zu char[] strArray = str.toCharArray();

  3. Diese Zeile: public abstract char[] toCharArray(); ist usele ss, Sie können es einfach löschen (Dies ist nicht falsch, aber es ist nicht notwendig).

  4. Sie können auch <string> aus dem Header der Hauptmethode entfernen, da dies nutzlos ist.

So Ihr endgültiger Code soll wie folgt aussehen:

import java.util.Scanner; 

public abstract class StringReverse { 
    private static Scanner input; 

    public static void main(String[] args){ 
     System.out.println("Enter a string: "); 
     input = new Scanner(System.in); 
     String str = input.next(); 
     char[] strArray = str.toCharArray(); 

     for (int i = strArray.length - 1; i >= 0; i--) 
     { 
      System.out.print(strArray[i]); 
     } 
    } 
} 

Oder den noch einfachen Weg, um eine Zeichenfolge rückgängig zu machen, ist ein StringBuilder() und .reverse(), wie diese verwenden:

import java.util.Scanner; 

public abstract class StringReverse { 
    private static Scanner input; 

    public static void main(String[] args){ 
     System.out.println("Enter a string: "); 
     input = new Scanner(System.in); 
     String str = input.next(); 
     System.out.println(new StringBuilder(str).reverse().toString()); 
    } 
} 
Verwandte Themen