如何在switch语句中使用String

时间:2011-12-21 15:57:12

标签: java queue switch-statement

这里我试图使用链表实现一个简单的队列。我在这里使用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;

    }

}

}

7 个答案:

答案 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,或者使用带有ScannernextInt()而不是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());