最终目标是采用多行用户输入并将其全部组合成一个单独的字符串,以后可以在我的代码中使用。当我使用下面的代码时,每个sinle线都被完美地打印为输出。但是,当我使用注释代码时,我的最终结果是不正确的。
System.out.println("Enter a string: ");
StringBuilder sb1 = new StringBuilder();
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
System.out.println(scanner.nextLine());
// String line = scanner.nextLine();
// sb1.append(line);
}
// System.out.println(sb1.toString());
我假设你想要的是每次输入之后的新行
sb1.append(line);
加
sb1.append(System.getProperty("line.separator"));
编辑:(因为我不知道如何在评论中发布代码)这将基本上一直要求输入,直到用户键入“退出”,然后它将在循环中打破并打印出字符串。您可以在追加行后附加逗号或空格以将它们分开。
我不确定你的原始问题是因为你没有从循环中断,或者因为你打印了nextLine
两次打印并将其分配给line
public static void main(String[] args) {
System.out.println("Enter a string: ");
StringBuilder sb = new StringBuilder();
try (Scanner scanner = new Scanner(System.in)) {
String input;
while (!(input = scanner.nextLine()).equals("exit")) {
sb.append(input);
}
}
System.out.println(sb.toString());
}
你可以试试这个。
private static String readFile(String pathname) throws IOException {
File file = new File(pathname);
StringBuilder fileContents = new StringBuilder((int)file.length());
try (Scanner scanner = new Scanner(file)) {
while(scanner.hasNextLine()) {
fileContents.append(scanner.nextLine() );
}
return fileContents.toString();
}
}
此代码将读取文本文件中的所有行,并将我们作为单个字符串作为返回对象。
以下是pom.xml文件供您参考:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>json_example</groupId>
<artifactId>json_example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.1.4</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1.4</version>
</dependency>
</dependencies>
</project>
然后将maven依赖jar文件添加到类路径中。
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;
public static void main(String[] args) {
System.out.println("Enter a valid JSON string: ");
try (// Create JsonReader from Json.
JsonReader reader = Json.createReader(System.in)) {
// Get the JsonObject structure from JsonReader.
JsonObject jsonObj = reader.readObject();
System.out.println(jsonObj.toString());
} catch (Exception e) {
e.printStackTrace();
}
}