程序在第一次用户输入后不会循环

时间:2017-10-03 16:22:42

标签: java

我一直在尝试编写此代码,其中用户输入带有或不带逗号的两个单词,如果没有逗号,则输出错误,然后循环返回以询问另一组单词。是的,这是家庭作业,我已经在互联网上寻求帮助,到目前为止它还没有点击我。我需要帮助我的代码中的循环,这是java。这些是我的热身程序的一系列要求,后面是我的代码。感谢您提供任何帮助。

1)提示用户输入包含两个以逗号分隔的字符串的字符串。 2)如果输入字符串不包含逗号,则报告错误。 3)从输入字符串中提取两个单词并删除任何空格。存放    字符串在两个单独的变量中并输出字符串。 4)使用循环,扩展程序以处理多行输入。继续    直到用户输入q退出。 这是我的代码:

import java.util.Scanner;
public class ParseStrings {

    public static void main(String[] args) {

        Scanner scnr = new Scanner(System.in);
        Scanner inSS = null;
        String lineString = "";
        String firstWord = "";
        String secondWord = "";
        boolean inputDone = false;

        System.out.println("Enter input string: ");

        while (!inputDone) {
            lineString = scnr.nextLine();
            inSS = new Scanner(lineString);

            if (firstWord.equals("q")) {
                System.out.println("Exiting.");
                inputDone = true;

            }

            if (lineString.contains(",")) {
                String[] parts = lineString.trim().split("\\s*,\\s*");
                firstWord = parts[0];
                secondWord = parts[1];
                System.out.println("First word: " + firstWord);
                System.out.println("Second word: " + secondWord);
            } else {
                System.out.println("Error: No comma in string");

            }
            break;
        }
        return;
    }
}

3 个答案:

答案 0 :(得分:0)

1)对于return类型的主方法,您不需要void语句

2)循环结束时的break是在第一次运行后终止的。{/ p>

答案 1 :(得分:0)

在循环中编写break;与告诉循环停止循环是一回事。如果你想定义另一个条件来终止你的循环,但是不想把它放在你的while中,那么把你的休息放在某种条件下,这样每次都不会发生。

答案 2 :(得分:0)

我想弄清楚当用户输入q时程序退出这里是我的代码到目前为止。

import java.util.Scanner;

公共类ParseStrings {

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    while (true) {
        String s = sc.nextLine();
        System.out.println("Enter input string: ");
        if (s.indexOf(",") == -1) //checks if there is a comma in the string
        {
            System.out.println("Error: No comma in string");
        } else {
            //there is a comma in the string
            String s1 = s.substring(0, s.indexOf(","));
            String s2 = s.substring(s.indexOf(",") + 1);
            s1 = s1.replace(" ", "");
            s2 = s2.replace(" ", "");
            //store both the strings in s1 and s2
            System.out.println("First word: " + s1);

            System.out.println("Second word: " + s2);

            s1 = s1.trim();
            s2 = s2.trim();  //remove extra spaces

            System.out.println(s1 + " " + s2);
            break;
        }
    }
}

}