Java 保持提示用户输入

Java 保持提示用户输入,java,input,user-input,Java,Input,User Input,我有任务要做。我需要把字母表转换成电话号码。在第3个数字后以及以后每4个数字后添加连字符。然后我需要允许用户继续输入。 我已经完成了3/4的代码。它不起作用了。我只是为了不断地提示用户输入而使用这个部件。 这是到目前为止我的java代码。请帮助我,告诉我我的代码出了什么问题。我是Java新手,请友好一点。谢谢大家! public static void main (String[] args) { Scanner input = new Scanner (System.in);

我有任务要做。我需要把字母表转换成电话号码。在第3个数字后以及以后每4个数字后添加连字符。然后我需要允许用户继续输入。 我已经完成了3/4的代码。它不起作用了。我只是为了不断地提示用户输入而使用这个部件。 这是到目前为止我的java代码。请帮助我,告诉我我的代码出了什么问题。我是Java新手,请友好一点。谢谢大家!

public static void main (String[] args)
{
    Scanner input = new Scanner (System.in);

    System.out.println("Enter letters: ");
    String phonenumber = input.next();
    String phone = phonenumber.replaceAll("\\s", " ");

    int count = 0; 
    int prevCount = 0;

    while (!phone.equals("#")){
    for (int i = 0; i < phone.length(); i++)
        {
            char letter = Character.toLowerCase(phone.charAt(i));
            if (letter == 'a' || letter == 'b' || letter == 'c')
            {    
                System.out.print(2);
                count++;
            }

            if (letter == 'd' || letter == 'e' || letter == 'f')
            {
                System.out.print(3);
                count++;
            }

            if (letter == 'g' || letter == 'h' || letter == 'i')
            {
                System.out.print(4);
                count++;
            }

            if (letter == 'j' || letter == 'k' || letter == 'l')
            {
                System.out.print(5);
                count++;
            }

            if (letter == 'm' || letter == 'n' || letter == 'o')
            {
                System.out.print(6);
                count++;
            }

            if (letter == 'p' || letter == 'q' || letter == 'r' || letter == 's')
            {
                System.out.print(7);
                count++;
            }

            if (letter == 't' || letter == 'u' || letter == 'v')
            {
                System.out.print(8);
                count++;
            }

            if (letter == 'w' || letter == 'x' || letter == 'y' || letter == 'z')
            {
                System.out.print(9);
                count++;
            }

            if (count == 3 || count - prevCount == 4)
            {
                System.out.print('-');
                prevCount = count;
            } 
        }
        System.out.println();
        System.out.println("Enter letters: ");
        input.nextLine();
    }
}
publicstaticvoidmain(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入字母:”);
字符串phonenumber=input.next();
字符串phone=phonenumber.replaceAll(“\\s”和“);
整数计数=0;
int-prevCount=0;
而(!phone.equals(“#”){
对于(int i=0;i
使用循环:

while (true)
{
 System.out.println("Enter letters: ");
 String phonenumber = input.next();

if something break;

你的问题是:

    System.out.println();
    System.out.println("Enter letters: ");
    input.nextLine(); // you forgot to assign the String returned by nextLine
                      // into your phone variable
除此之外,您应该在while循环的每个迭代中重置计数器

while (!phone.equals("#")) {
    int count = 0; 
    int prevCount = 0;
    ... your for loop ...
    System.out.println();
    System.out.println("Enter letters: ");
    phone = input.nextLine();
}

谢谢你!我终于明白了。
while (!phone.equals("#")) {
    int count = 0; 
    int prevCount = 0;
    ... your for loop ...
    System.out.println();
    System.out.println("Enter letters: ");
    phone = input.nextLine();
}