"对于类型Scanner"

时间:2017-05-24 04:36:06

标签: java arrays char

我正在尝试撤消用户输入的String,但是在运行程序时收到此错误:

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

1 个答案:

答案 0 :(得分:2)

您的代码存在一些小问题,导致代码无法正常运行:

  1. Scanner String = new Scanner(System.in);更改为input = new Scanner(System.in);

  2. char[] strArray = input.toCharArray();更改为char[] strArray = str.toCharArray();

  3. 这一行:public abstract char[] toCharArray();没用,你可以删除它(这不是错误的,但没有必要)。

  4. 此外,您可以从主方法标题中删除<string>,因为它没用。

  5. 所以你的最终代码应如下所示:

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

    或者更简单的反转字符串的方法是使用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();
            System.out.println(new StringBuilder(str).reverse().toString());
        }
    }