这里我试图使用链表实现一个简单的队列。我在这里使用Bufferreader和readline。我将“选择”声明为字符串。但是我无法将字符串变量传递给switch语句。如果我将其声明为Integer变量,则readline方法将不接受它。谁能帮忙?
import java.lang.*;
import java.util.*;
import java.io.*;
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
LinkedList l1=new LinkedList();
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the no of elements to be inserted: ");
String str;
str=bf.readLine();
System.out.println("Enter Your Choice: ");
System.out.println("1->Insert 2->Delete 3->Display 4->Exit");
String choice;
choice=bf.readLine();
for(;;){
switch(choice) {
case 1:l1.addLast(bf);
break;
case 2:l1.removeFirst();
break;
case 3:
System.out.println("The contents of Queue are :" +l1);
break;
default:break;
}
}
}
答案 0 :(得分:1)
使用int choiceNum = Integer.parseInt(choice);
并启用它。
请注意,在Java 7中,您实际上可以打开字符串,但您需要case "1":
。
答案 1 :(得分:1)
好的另一个答案是保持字符串:
if (choice.equals("1")) {
...
} else if (choice.equals("2")) {
答案 2 :(得分:1)
如果它始终是一个字符输入,您可以将其转换为char
并使用单引号打开它...
答案 3 :(得分:0)
在将字符串放入ta switch语句之前将其解析为整数:
int choice;
choice = Integer.parseInt(bf.readLine());
答案 4 :(得分:0)
如果是int,您可能希望使用Integer.parseInt()将String解析为int,或者使用带有Scanner的nextInt()而不是BufferedReader来直接从文件中检索int。
答案 5 :(得分:0)
试试这个
choice = Integer.parseInt(bf.readLine());
答案 6 :(得分:0)
我认为要使用LinkedList,您需要在声明时指定数据类型。
LinkedList<String> l1 = new LinkedList<String>();
这将创建数据类型字符串的链接列表。然后你可以使用parse函数将String转换为int。
int choice;
choice = Integer.parseInt(bf.readLine());