Java “类型扫描程序的toCharArray()方法未定义”

Java “类型扫描程序的toCharArray()方法未定义”,java,arrays,char,Java,Arrays,Char,我试图反转用户输入的字符串,但在运行程序时收到此错误: Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method toCharArray() is undefined for the type Scanner 为什么我会犯这个错误?以下是我的节目: import java.util.Scanner; public abstract class StringRevers

我试图反转用户输入的字符串,但在运行程序时收到此错误:

 Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
   The method toCharArray() is undefined for the type Scanner
为什么我会犯这个错误?以下是我的节目:

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]);
        }
    }
}

您的代码有几个小问题,导致其无法正确运行:

更改扫描仪字符串=新建ScannerSystem.in;输入=新扫描系统.in

更改字符[]strArray=input.tocharray;to char[]strArray=str.toCharArray

这一行:公共抽象字符[]ToCharray;是没用的,你可以直接删除它。这不是不正确的,但不是必须的

此外,您还可以从主方法头中删除,因为它是无用的

因此,您的最终代码应该如下所示:

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]);
        }
    }
}
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());
    }
}
或者更简单的反转字符串的方法是使用StringBuilder和.reverse,如下所示:

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]);
        }
    }
}
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());
    }
}

更改为char[]strArray=str.tocharray;我不知道异常可能会变得多么清晰…并且更改Scanner String=new ScannerSystem.in;输入=新扫描系统.in;新StringBuildertrue.reverse.toString;