Wenn Sie die Konvertierungsmethode schnell kennenlernen möchten, lesen Sie bitte die Schlussfolgerung am Ende der Seite.
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.
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.
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(","));
}
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();
}
}
}
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