Получение многострочного ввода и объединение его в одну строку для работы в консольном приложении Java

Простое решение

<select ng-model='form.type' required><options>
<option ng-repeat="tp in typeOptions" ng-selected="    
{{form.type==tp.value?true:false}}" value="{{tp.value}}">{{tp.name}}</option>

0
задан Blake Rivell 27 March 2019 в 04:30
поделиться

3 ответа

Вы можете попробовать это.

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
ответ дан Suraj Kumar 27 March 2019 в 04:30
поделиться

Я предполагаю, что вы хотите новую строку после каждого ввода, поэтому после

sb1.append(line);

добавьте

sb1.append(System.getProperty("line.separator"));

[119 ] Редактировать: (потому что я не знаю, как разместить код в комментариях). В основном, он будет продолжать запрашивать ввод, пока пользователь не введет «выход», из которого он затем прервет цикл while и выведет строку. Вы можете добавлять запятые или пробелы, чтобы разделить их после добавления строки.

Я не уверен, что ваша первоначальная проблема была в том, что вы не прерывали цикл или потому, что вы дважды печатали 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
ответ дан chris 27 March 2019 в 04:30
поделиться

Ниже приведен файл 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();
    }

}
0
ответ дан Miller Cy Chan 27 March 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: