我正在尝试撤消用户输入的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]);
}
}
}
答案 0 :(得分:2)
您的代码存在一些小问题,导致代码无法正常运行:
将Scanner String = new Scanner(System.in);
更改为input = new Scanner(System.in);
将char[] strArray = input.toCharArray();
更改为char[] strArray = str.toCharArray();
这一行:public abstract char[] toCharArray();
没用,你可以删除它(这不是错误的,但没有必要)。
此外,您可以从主方法标题中删除<string>
,因为它没用。
所以你的最终代码应如下所示:
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());
}
}