接收多行输入并将其连接成一个字符串,以便在Java控制台应用程序中执行某些操作

问题描述 投票:0回答:3

最终目标是采用多行用户输入并将其全部组合成一个单独的字符串,以后可以在我的代码中使用。当我使用下面的代码时,每个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());
java console-application stringbuilder
3个回答
2
投票

我假设你想要的是每次输入之后的新行

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());
    }

0
投票

你可以试试这个。

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();
    }
}

此代码将读取文本文件中的所有行,并将我们作为单个字符串作为返回对象。


0
投票

以下是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();
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.