当前位置: 首页 > 知识库问答 >
问题:

如何在循环中保持字符串输入

董哲
2023-03-14

我正在制作一个程序,它从用户那里获取一个字符串并用分隔符逐字分隔它,它几乎完成了。但是,在第一个完整循环之后,来自用户的下一个输入不会通过最后一个while循环。

下面是我要说的代码片段:

do
  { 
     System.out.println ("\nEntered String: " + s1 + "\n");

     while (input.hasNext())
     {
        word++;

        System.out.println ("Word #" + word + ": \t" + input.next()); 
     }   
        System.out.print ("\nEnter 'q' to quit, enter string to continue:  \t");
        s1 = scan.nextLine();

  } while (!s1.equals("q"));

我想我需要在单词increment和print行周围再循环一次,并在输入中使用continue序列。hasNext()循环,因为这就是我使用int来运行类似程序的方式,但我不确定这将如何处理字符串

有什么建议吗?

编辑:为了澄清,现在我的代码输出如下:

输入一个句子:这是一个句子

输入字符串:这是一个句子

单词#1:这个

单词#2:是

单词#3:a

单词#4:句子

输入'q'退出,输入string继续:另一个句子

输入字符串:另一个句子

输入'q'退出,输入字符串继续:

我需要“另一个句子”打印出来,就像“这是一个句子”

共有3个答案

邹华池
2023-03-14

你正在使用

 while (input.hasNext())

我假设输入是一个Scanner对象,所以在使用它之前(但在进入循环之前)应该执行以下操作:

Scanner input = new Scanner(System.in);
郎鸿雪
2023-03-14

如果有用的话,你可以试试这个。它与你需要的结果相同。

    Scanner scan = new Scanner(System.in);
    String s1 = scan.nextLine();
    do {
        String input[] = s1.split(" ");
        System.out.println ("\nEntered String: " + s1 + "\n");
        for(int i = 0; i < input.length; i++) {
           System.out.println ("Word #" + i+1 + ": \t" + input[i]); 
        }
        System.out.print ("\nEnter 'q' to quit, enter string to continue:  \t");
        s1 = scan.nextLine();
    } while (!s1.equals("q"));
龙宣
2023-03-14

我不明白到底是什么问题,因为您的代码无法编译。但是不需要另一个循环。以下是一些有效的代码:

Scanner scan = new Scanner(System.in);
System.out.print("\nEnter a sentence:");
String s1 = scan.nextLine();

do
{
    System.out.println("\nEntered String: " + s1 + "\n");

    Scanner input = new Scanner(s1);
    int word = 0;
    while (input.hasNext())
    {
        word++;
        System.out.println("Word #" + word + ": \t" + input.next());
    }

    System.out.print("\nEnter 'q' to quit, enter string to continue:  \t");
    s1 = scan.nextLine();

} while(!s1.equals("q"));

scan.close();
 类似资料:
  • 我正在尝试制作一个计算某人所做步数的程序(如果这个数字更大或等于10000,程序就应该停止),但我似乎找不到一种方法来键入“回家”,然后输入到家所必需的步数。

  • 我一直在寻找如何弄清楚如何让一个输入或某些东西进入一个time循环。就像在,输入()命令不会停止我的秒表。我尝试过tkinter、pygame和其他几种方法,但它们都不起作用。如果有人能帮我,我更喜欢小而简单的东西,如果这是可能的话。具体来说,我想学习做什么,基本上是允许在按下任何键时立即停止(最好不按回车键)。谢谢,马鞍猪! 以下是我到目前为止的情况,没有任何东西可以激活停止:

  • 问题内容: 我想用Java初始化一个String,但是该字符串需要包含引号;例如:。我试着做: 但这不起作用。如何”在字符串中包含? 问题答案: 在Java中,你可以使用:

  • 我刚开始学习Java,我遇到了这个问题:我有一个无限的 while 循环,它创建了一个通过套接字发送的消息;目前,在从队列中轮询许多元素并读取它们之前,不会发送消息。 我的目标是在N秒后发送消息,而不是等待到达MAX_MSG_TO_SEND…有可能做到吗?还是我将继续这种方法?

  • 问题内容: 我被困在我应该声明一个称为“ phrase”的字符串变量的部分,该变量不应一直循环播放。 让您知道我的任务是:与选项1相似,不同之处在于用户在输入第一队的结果后输入“ N”(而不是“ Q”)。然后,程序输入第二个团队名称及其结果,直到输入“ Q”。输出两个语句,例如选项1中的语句,然后输出第三条语句,该语句说明哪个团队处于第一位(基于点数) 输入样例: 样本输出: 更新 : 我的代码:

  • 正如标题中所述,我试图循环Jenkins Groovy管道脚本中字符串的(使用脚本化管道语法)。让我把整个“问题”告诉你。 我从一串用空格分隔的文件系统位置开始:“/var/x /var/y /var/z......”就像这样。我循环这个字符串,将每个字符添加到一个temp。然后当我到达一个空格时,我将该临时字符串添加到数组中并重新启动。这里有一些代码显示了我是如何做到这一点的: 看,这个问题是,