[Java 8] Bis zur Konvertierung von Standardeingaben, die beim Codieren von Tests verwendet werden können, in eine Liste oder ein Array

Wenn Sie die Konvertierungsmethode schnell kennenlernen möchten, lesen Sie bitte die Schlussfolgerung am Ende der Seite.

Hintergrund

Nach dem letzten Mal handelt es sich wieder um ein Codierungstestmaterial. [Java 8] Sortiermethode in alphabetischer Reihenfolge und Reihenfolge der Zeichenkettenlänge, die für Codierungstests verwendet werden kann --Qiita

Offensichtlich sind die meisten Codierungstests "Werterfassung durch Standardeingabe" -> "Konvertierung für einfache Verarbeitung" -> "irgendeine Art von Berechnungsverarbeitung". Ich möchte keine Zeit mit "Erfassen von Werten durch Standardeingabe" und "Konvertieren für meine eigene Verarbeitung" verbringen, um auch nur ein wenig Zeit mit "irgendeiner Art von Berechnungsverarbeitung" zu verbringen.

Dieses Mal werde ich, wie der Titel schon sagt, zusammenfassen, wie Standardeingaben in eine Liste oder ein Array konvertiert werden.

Betriebsumgebung

Gemeinsame Standardeingabe bei Problemen

Eine häufig verwendete Standardeingabe ist ein Bild wie das folgende.

1,AIUEO,Kakikukeko

Angenommen, das Problem besteht darin, die Zeichen durch Kommas (,) zu trennen und die Zeichen nach der ersten Eingabenummer auszugeben. Im obigen Beispiel ist die erste Zahl 1, also ist die Ausgabe

AIUEO

Ist die richtige Antwort.

2,AIUEO,Kakikukeko,SA Shi Su Se So.

If ist eine Standardeingabe

AIUEO
Kakikukeko

Ist die richtige Antwort.

In solchen Fällen möchte ich zuerst die Zeichenfolge lesen und in einer durch Kommas getrennten Liste speichern.

Von der Standardeingabe bis zur Konvertierung in List

Holen Sie sich zunächst die Standardeingabe wie folgt.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();

Es scheint eine Möglichkeit zu geben, dies mit Scanner zu erreichen, aber ich verwende ein Muster, das java.io.BufferedReader und java.io.InputStreamReader verwendet. Eine Zeile der Zeichenfolge wird in der Zeile gespeichert.

Als nächstes versuchen wir den Vorgang des Speicherns in der durch Kommas (,) getrennten Liste im Hauptthema.

List<String> list = Arrays.asList(line.split(","));

Es ist einfach, aber das war's.

split teilt eine Zeichenfolge an einer Position, die dem angegebenen regulären Ausdruck entspricht. Der Rückgabewert hierfür ist String []. Es ist ein Array vom Typ String. Da es durch einen regulären Ausdruck geteilt wird, kann es durch etwas anderes als ein Komma (,) geteilt werden. Der nächste Schritt besteht darin, das Array mit der Methode java.util.Arrays.asList in eine Liste zu konvertieren.

Es kann als Methode wie unten gezeigt unabhängig sein.

/**
 *Von String in Liste konvertieren
 * @param str Konvertierter String
 * @Konvertierte Liste zurückgeben
 */
private static List<String> stringToList(String line) {
  return Arrays.asList(line.split(","));
}

Gemeinsame Standardeingabe beantwortet Probleme

Wenn Sie die Frage beantworten, über die Sie nachgedacht haben, erhalten Sie den folgenden Quellcode. ~~ Es ist in Ordnung, ein Array anstelle einer Liste zu verwenden! !! Und Sie müssen es nicht in List konvertieren! !! Bitte sag nicht "Tsukomi" ......... ~~

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;


public class Main {
	public static void main(String[] args) throws IOException {
    try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
			String line = br.readLine();
			List<String> list = Arrays.asList(line.split(","));
			int cnt = Integer.parseInt(list.get(0));
			for (int i = 1; i <= cnt; i++) {
				System.out.println(list.get(i));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Fazit

Wenn es eine Liste ist,

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
List<String> list = Arrays.asList(line.split(","));

Wenn es ein Array ist

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
String[] strArray = line.split(",");

Recommended Posts

[Java 8] Bis zur Konvertierung von Standardeingaben, die beim Codieren von Tests verwendet werden können, in eine Liste oder ein Array
[Java 8] Sortiermethode in alphabetischer Reihenfolge und Reihenfolge der Zeichenkettenlänge, die für Codierungstests verwendet werden kann
Schreiben einer Klasse, die in Java bestellt werden kann Ein kleines Standard-Memo
Zusammenfassung von ORM "uroboroSQL", das in Enterprise Java verwendet werden kann
Eingabe / Ausgabe von Java-Dateien, die über den historischen Hintergrund verwendet werden können
[Android Studio] Beschreibung, die kontinuierlich in die SQLite-Datenbank eingegeben werden kann [Java]
Technologie-Auszug, mit dem EC-Sites in Java-Schulungen erstellt werden können
Praktische Tastenkombinationen für Eclipse
Syntax- und Ausnahmebedingungen, die beim Vergleich mit null in Java verwendet werden können
Liste der Geräte, die mit Swift UI in der Vorschau angezeigt werden können
Erstellen Sie ein Seitensteuerelement, das mit RecyclerView verwendet werden kann
Erstellen Sie eine JAR-Datei, die auf Gradle ausgeführt werden kann
Java (Super Beginner Edition), das in 180 Sekunden verstanden werden kann
Lesen Sie die Standardeingabe in Java
[Java] So suchen Sie mit der Methode includes nach Werten in einem Array (oder einer Liste)
So erstellen Sie ein Schlüsselpaar von ecdsa in einem Format, das von Java gelesen werden kann
Referenznotiz / In-Memory-LDAP-Server, der in Java eingebettet werden kann
Statisches Analysetool, das mit GitHub verwendet werden kann [Java-Version]
Beachten Sie, dass Systemeigenschaften einschließlich JAXBContext in Java11 nicht verwendet werden können
SwiftUI-Ansicht, die in Kombination mit anderen Frameworks verwendet werden kann
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
[Spring Boot] Liste der Validierungsregeln, die in der Eigenschaftendatei für Fehlermeldungen verwendet werden können
Ruby-Array-Methoden, die mit Rails verwendet werden können (außer jedem)