Как использовать String в операторе switch - PullRequest
0 голосов
/ 21 декабря 2011

Здесь я пытаюсь реализовать простую очередь, используя связанный список.Я использовал Bufferreader и readline здесь.Я объявил «выбор» как строку.Но я не могу передать строковую переменную для переключения оператора.Если я объявил его как переменную 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 ]

1 голос
/ 21 декабря 2011

Если это всегда ввод одного символа, вы можете преобразовать его в char и включить его, используя одинарные кавычки ...

1 голос
/ 21 декабря 2011

Хорошо, еще один ответ, оставьте строку:

if (choice.equals("1")) {
    ...
} else if (choice.equals("2")) {
1 голос
/ 21 декабря 2011

Используйте int choiceNum = Integer.parseInt(choice); и включите его.

Обратите внимание, что в Java 7 вы действительно можете включить строки, но вам нужно будет case "1":.

0 голосов
/ 22 декабря 2011

Я считаю, что для использования LinkedList вам необходимо указать тип данных при объявлении.

LinkedList<String> l1 = new LinkedList<String>();

Это создаст связанный список данных типа Strings.Затем вы можете использовать функцию разбора, чтобы преобразовать строку в int.

int choice;
choice = Integer.parseInt(bf.readLine());
0 голосов
/ 21 декабря 2011

попробуйте

choice = Integer.parseInt (bf.readLine ());

0 голосов
/ 21 декабря 2011

Если это int, вы можете проанализировать вашу String в int с помощью Integer.parseInt () или использовать Scanner с nextInt () вместо BufferedReader для извлечения int прямо из вашего файла.

0 голосов
/ 21 декабря 2011

Разобрать строку в целое число перед тем, как поместить ее в инструкцию переключения:

int choice;
choice = Integer.parseInt(bf.readLine());
...