gpt4 book ai didi

java - 无法理解为什么我会陷入无限循环。 java 。如何在不输入 exit 的情况下触发 EoF

转载 作者:行者123 更新时间:2023-12-01 09:27:55 25 4
gpt4 key购买 nike

我对 java 和这个社区非常陌生。我正在寻找可能能够解释为什么我的代码进入无限循环的人。我相信这与我的 while 循环有关。该程序可以编译,但是当我输入一个短语时,我希望我的缩写生成器创建该程序而不做任何事情,它只是在下一行闪烁。当我按 ctrl c 退出时,它会显示缩写词。

import java.util.Scanner;
import java.io.*;
import java.util.*;

public class Acronym{

public static void main(String[] args) {
String phraseToChange = "";
int wordCounter = 0;
char[] acroynmArray = new char [100];
Scanner input = new Scanner(System.in);
System.out.println("This program builds acronyms");
System.out.println("Enter a phrase:");
while (input.hasNext() )
{
phraseToChange = input.next();
acroynmArray[wordCounter] = phraseToChange.charAt(0);
wordCounter++;
}
for (int i = 0;i < wordCounter ; i++ )
{
System.out.print(acroynmArray[i]);
}
}
}

最佳答案

问题并不是真正由您的 while 循环引起的,而是因为扫描仪将不断询问用户新输入(system.in 流将始终打开)直到 EOF。因此,如果您的教授允许,可以使用 StringTokenizer 来解决该问题。下面是代码示例

import java.util.Scanner;
import java.io.*;
import java.util.*;

public class Acronym{

public static void main(String[] args) {
String phraseToChange = "";
boolean phraseToChange2 = true;
int wordCounter = 0;
char[] acroynmArray = new char [100];
Scanner input = new Scanner(System.in);
System.out.println("This program builds acronyms");
System.out.println("Enter a phrase:");
String nextLine = input.nextLine();
StringTokenizer st = new StringTokenizer(nextLine, " ");
while (st.hasMoreTokens())
{
phraseToChange = st.nextToken();
acroynmArray[wordCounter] = phraseToChange.charAt(0);
wordCounter++;
}
System.out.println("reach here");
for (int i = 0;i < wordCounter ; i++ )
{
System.out.print(acroynmArray[i]);
}
}
}

关于java - 无法理解为什么我会陷入无限循环。 java 。如何在不输入 exit 的情况下触发 EoF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39691179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com