我得到了所需的输出,但我的代码还没有运行完毕。 我使用“/”作为扫描仪类的分隔符,我的代码是
Scanner scan = new Scanner(System.in);
scan.useDelimiter("/");
while(scan.hasNext())
{
System.out.println(scan.next());
}
我在输出窗口输入的内容是
Input
abcdef/ghijkl/out/
Output:
abcdef
ghijkl
out
该程序仍在运行。
答案 0 :(得分:2)
import java.util.Scanner; // headers MUST be above the first class
// one class needs to have a main() method
public class HelloWorld
{
// arguments are passed using the text field below this editor
public static void main(String[] args)
{
Scanner scan = new Scanner("abcdef/ghijkl/out/");
scan.useDelimiter("/");
while(scan.hasNext())
{
System.out.println(scan.next());
}
}
}
这是作品。
您的问题可能是您正在打开键盘扫描仪(System.in),但您不能在任何地方存储键盘输入的值。您可能希望将输入设置为变量,就像我一直在教授Java的类中所做的那样:
Scanner scan = new Scanner (System.in);
String input = scan.nextLine(); // input: "abcdef/ghijkl/out/"
String[] stringArray = input.split("/");
for(String i : stringArray)
{
System.out.println(i);
}
答案 1 :(得分:1)
问题在于response.WriteResponseStreamToFile(Server.MapPath(cwrFilePath));
方法。以下是yield the same connection的摘录,其中指出此方法在等待输入扫描时可能会阻塞,即使之前的hasNext()调用返回true
public String next()
查找并返回此扫描仪的下一个完整令牌。在完成令牌之前和之后是与分隔符模式匹配的输入。 此方法可能在等待输入扫描时阻塞,即使之前的hasNext()调用返回true 。
答案 2 :(得分:-2)
您必须使用scan.close();
这里你将它用作
Scanner scan = new Scanner(System.in);
scan.useDelimiter("/");
while(scan.hasNext())
{
System.out.println(scan.next());
scan.close();
}