<identifier> 尝试使用堆栈识别回文时出错?
<identifier> error when trying to identify palindromes with stack?
我正在做一项识别回文的作业,我必须使用堆栈来完成它。我目前收到消息错误:预期标识符:
palStack.push(nextChar);
我的教授说我正在尝试将 Stack 用作原始类型,这就是我收到错误的原因,但我不确定他的确切意思是什么?我对数据结构还很陌生,所以任何有关使用 Stack 的提示都将不胜感激!
这是我遇到问题的部分:
public static void main(String[] args){
int replay = 0;
Stack<char> palStack = new Stack<>();
char nextChar;
int characterCount;
String phrase, emptyPhrase = "", replayAns;
@SuppressWarnings("unchecked")
Scanner reader = new Scanner(System.in);
while(replay != 1){
System.out.println("Enter phrase: ");
phrase = reader.nextLine();
characterCount = phrase.length();
System.out.print("Original phrase: ");
for(int i = 0; i < characterCount; i++){
nextChar = phrase.charAt(i);
@SuppressWarnings("unchecked")
palStack.push(nextChar);
System.out.print(nextChar);
}
}
}
问题出在这一行:
Stack<char> palStack = new Stack<>();
您不能将 primitives/raw 类型(在本例中为 char
)用作通用类型 (https://docs.oracle.com/javase/tutorial/java/generics/types.html)。所以你只需要使用一个引用类型,即 java.lang.Character
:
Stack<Character> palStack = new Stack<>();
我正在做一项识别回文的作业,我必须使用堆栈来完成它。我目前收到消息错误:预期标识符:
palStack.push(nextChar);
我的教授说我正在尝试将 Stack 用作原始类型,这就是我收到错误的原因,但我不确定他的确切意思是什么?我对数据结构还很陌生,所以任何有关使用 Stack 的提示都将不胜感激!
这是我遇到问题的部分:
public static void main(String[] args){
int replay = 0;
Stack<char> palStack = new Stack<>();
char nextChar;
int characterCount;
String phrase, emptyPhrase = "", replayAns;
@SuppressWarnings("unchecked")
Scanner reader = new Scanner(System.in);
while(replay != 1){
System.out.println("Enter phrase: ");
phrase = reader.nextLine();
characterCount = phrase.length();
System.out.print("Original phrase: ");
for(int i = 0; i < characterCount; i++){
nextChar = phrase.charAt(i);
@SuppressWarnings("unchecked")
palStack.push(nextChar);
System.out.print(nextChar);
}
}
}
问题出在这一行:
Stack<char> palStack = new Stack<>();
您不能将 primitives/raw 类型(在本例中为 char
)用作通用类型 (https://docs.oracle.com/javase/tutorial/java/generics/types.html)。所以你只需要使用一个引用类型,即 java.lang.Character
:
Stack<Character> palStack = new Stack<>();