- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要做以下练习:a) 新建一个文本文件b) 将用户的输入放入该文本文件c) 我们必须在用户继续输入时保存所有用户的输入,但是只要用户在新行中按 Enter(发送空字符串时),用户就必须退出程序。为了对这个问题进行编码,我编写了以下代码,但是当我自己尝试,所以我陷入了 while 循环,当我发送空字符串时无法退出。那么有人可以帮助解决这个问题吗?
谢谢
我已经尝试了一些我在 youtube 上找到的解决方案,例如在 while 循环内制作 if 语句或添加在循环条件内接受用户输入的代码。所以我不知道下一阶段要做什么。我试图通过 Eclipse 输出查看控制台窗口。
import java.io.*;
import java.util.Scanner;
public class lesson {
public static void main(String[] args) throws IOException {
File file = new File("mytext.txt");
if (file.exists() == false) {
file.createNewFile();
}
PrintWriter pw = new PrintWriter(file);
System.out.println("Enter a text here: ");
String str;
while (true) {
Scanner input = new Scanner(System.in);
str = input.next();
pw.println();
if (str.equals(null)) {
break;
}
}
pw.close();
System.out.println("Done");
}
}
当用户发送一个空字符串时,他/她必须跳出循环。并且必须完成对文件的写入。
最佳答案
先是代码,再是解释...
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Lesson {
public static void main(String[] args) {
File file = new File("mytext.txt");
try (Scanner input = new Scanner(System.in);
PrintWriter pw = new PrintWriter(file)) {
System.out.println("Enter a text here: ");
String str = input.nextLine();
while (str.length() > 0) {
pw.println(str);
pw.flush();
str = input.nextLine();
}
}
catch (IOException xIo) {
xIo.printStackTrace();
}
System.out.println("Done");
}
}
上面的代码至少需要 Java 7,因为它使用了 try-with-resources . Scanner
应该关闭,就像 PrintWriter
应该关闭一样。 try-with-resources 确保它们是关闭的。请注意,如果文件 mytext.txt 不存在,创建一个新的 PrintWriter
也会创建该文件,如果该文件已经存在,其内容将被删除并替换为您输入的文本。
之后显示提示,即在此处输入文本,然后用户输入一行文本。方法 nextLine()
将获取所有输入的文本,直到用户按下 Enter。我再次阅读了您的问题,当用户按 Enter 而不键入任何文本 时,程序应该退出。当用户这样做时,str
是一个空字符串,即它的长度为零。这意味着我需要在 while
循环之前为 str
赋值,因此在 之前第一次调用方法
循环。nextLine()
while
在 while
循环中,我将用户输入的值写入文件 mytext.txt,然后等待用户输入另一行文本。如果用户在没有输入任何文本的情况下按下 Enter,str
的长度将为零,while
循环将退出。
使用 JDK 12 在 Windows 10 上使用 Eclipse 编写和测试适用于 Java 开发人员,版本 2019-03。
关于java - 当用户在新行中按回车键时,他/她必须退出 while 循环。但它不起作用,它一直在换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55514637/
我在一个网站上有一个非常简单的登录脚本,它只使用 1 个简单的密码,而且它可以满足我的需要。问题是,它仅在单击“登录”字样时有效。我需要它做的是在按下 Enter 键时也能工作。这是代码:
在我的应用程序中,我有一个全局搜索字段,用于过滤列表中的数据,列表将有多个列。从其他组件设置过滤器值(设置为输入值)它正在发生,但我必须在输入上触发手动键盘事件(输入键)操作。 我尝试使用 viewC
在我的应用程序中,我使用的是 Tinymce。这是我的问题。 场景一 1) 我有这样风格的段落 Paragraph with some content. 当我将光标放在段落末尾并按下回车键时,它会像这
我有一个包含多个下拉列表和一个文本字段以及一个按钮的表单... 当我单击按钮时,会调用一个 ajax 函数...然后 ajax 会调用一个从 mysql 数据库获取结果的 php 函数... 问题是我
我想写一个程序在每句话之后做一个处理。像这样: char letter; while(std::cin >> letter) { if(letter == '\n') { // her
我在某处找到了一个非常适合我的自动完成脚本,但有一件事我不知道如何更改。当您单击下拉列表中的某些内容时,它不会提交此字符串,您必须单击以选择该字符串,然后单击提交按钮或按回车键。我希望此下拉菜单自动完
我在几周前开始使用 Xamarin Studio,但找不到下一个问题的解决方案:创建了一个包含序列号的编辑文本。我想在按下 Enter 后运行一个函数。它工作正常,当我按 Enter 时,函数运行没有
在 Android 和 iOS 中,可以将 keyboard 的 enter/return 键更改为例如“Go”按钮(和其他选项)。 在顶部上,我们可以在两个系统上看到常规的“返回”按钮,这是您在 A
具体代码如下所述: ? 1
我知道如何使用事件来测试何时按下某个键,但在 C 语言中我从来不知道该怎么做。 我真正想要的是一个“KeyListener”,它监听Up、Down、Left 和Right 方向键。我需要它在 Linu
我使用回车键从 v-textarea 输入数据,结果如下 Hello\nWorld 在默认或 rawHtml 不工作的情况下在 v-data-table 中呈现此内容 {{ props.it
我是一名优秀的程序员,十分优秀!