程序工作,然后终止

时间:2012-01-08 15:19:04

标签: java java.util.scanner

我正在尝试为字符串加密/解密做一个程序,我需要为用户创建一个菜单,这样他就可以选择用他输入的字符串做什么。如果用户输入1,他可以加密字符串,如果用户选择2,他可以解密字符串。但是 - 当他输入1时,da程序只在控制台终止,并显示终止菜单java应用程序C:\ Program Files \ Java \ jre7 \ bin \ javaw.exe消息

任何人都有线索?

import java.util.Scanner;

public class Menu {

public static void main(String[] args) {

    String strTarget;

    Scanner in = new Scanner(System.in);

    System.out
            .println("Dobredojdovte vo programata za enkripcija i dekripcija na stringovi --");
    System.out
            .println("Za da enkriptirate string, stisnete 1; Za da dekriptirate string, stisnete 2");
    int choice = in.nextInt();
    if (choice == 1) {
        System.out.println("Vnesete go stringot kojsto sakate da go enkriptirate -- Dozvoleni se samo golemi bukvi i cifri (mali bukvi ne se dozvoleni)");
        strTarget = in.nextLine();
        System.out.println(strTarget);
    }
    if (choice == 2) {
        System.out.println("Vnesete go stringot kojsto sakate da go dekriptirate --");
    }

}

}

3 个答案:

答案 0 :(得分:0)

而不是:

strTarget = in.nextLine();

你想:

strTarget = in.next();

我不确定输出的语句(不是我的语言),但这会返回输入的下一个单词。如果您想要整条生产线,那么请保持原样,而不是:

int choice = in.nextInt();

你想:

int choice = in.nextInt();
in.nextLine();

答案 1 :(得分:0)

值得注意的是,in.nextInt()读取一个数字,而不是整行,所以in.nextLine()读取该行的其余部分。如果您希望用户输入一个数字,并且您想忽略该行的其余部分,则需要在其后调用in.nextLine()。

答案 2 :(得分:0)

当然它终止了,你没有指出它必须继续要求输入的程序。你需要在循环中编写代码!