由于某种原因我无法让它工作。我有一个读取交易的应用程序,当输入空行时,它需要打印出一些内容。
int transationCount = 0;
while(sc.hasNext())
{
String trans = sc.next();
String mode = trans.substring(0, 1);
Double amount = Double.valueOf(trans.substring(1));
if(mode.equals("C"))
{
c.charge(amount);
ps.println(c.getBalance());
transationCount = transationCount + 1;
}
else if(mode.equals("P"))
{
c.pay(amount);
ps.println(c.getBalance());
transationCount = transationCount + 1;
}
}
ps.println(c.getBalance());
ps.println(transationCount);
我尝试过
while(sc.hasNext() && !(sc.next().equals("")))
不起作用。我还尝试在 while 循环内添加
else if (!(trans.equals("")) {break;}
最佳答案
默认情况下,扫描仪将忽略空行,因为它不是有效的 token 。
您可以手动检查该行是否为空:
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
while(true) {
String line = sc.nextLine();
if (line.isEmpty()) {
System.out.println("Empty line entered");
} else {
System.out.println("received line: " + line);
String[] tokens = line.split("\\s+");
System.out.println("tokens: " + Arrays.toString(tokens));
}
}
}
关于java - 继续做事直到输入空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13592143/