Si vous souhaitez connaître rapidement la méthode de conversion, veuillez consulter la conclusion à la fin de la page.
Dans la continuité de la dernière fois, c'est à nouveau un matériau de test de codage. [Java 8] Méthode de tri par ordre alphabétique et par ordre de longueur de chaîne de caractères pouvant être utilisée dans les tests de codage --Qiita
Evidemment, dans les tests de codage, l'essentiel du flux est "acquisition de valeur par entrée standard" -> "conversion pour un traitement facile" -> "une sorte de traitement de calcul". Je ne veux pas passer du temps à «acquérir des valeurs par entrée standard» et à «convertir pour mon propre traitement» afin de passer même un peu de temps sur «une sorte de traitement de calcul».
Cette fois, comme le titre l'indique, je vais résumer comment convertir une entrée standard en une liste ou un tableau.
Une entrée standard courante en question est une image comme celle ci-dessous.
1,AIUEO,Kakikukeko
Supposons que le problème soit d'obtenir les caractères séparés par des virgules (,) et de sortir les caractères après le premier numéro d'entrée. Dans l'exemple ci-dessus, le premier nombre est 1, donc la sortie est
AIUEO
Est la bonne réponse.
2,AIUEO,Kakikukeko,SA Shi Su Se So
Si est une entrée standard
AIUEO
Kakikukeko
Est la bonne réponse.
Dans de tels cas, je voudrais d'abord lire la chaîne et la stocker dans une liste séparée par des virgules.
Tout d'abord, obtenez l'entrée standard comme suit.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
Il semble y avoir un moyen de l'obtenir avec Scanner, mais j'utilise un modèle qui utilise java.io.BufferedReader et java.io.InputStreamReader. Une ligne de chaîne de caractères est stockée en ligne.
Ensuite, essayons le processus de stockage dans la liste séparée par des virgules (,) dans le sujet principal.
List<String> list = Arrays.asList(line.split(","));
C'est facile, mais c'est tout.
split divise une chaîne à une position qui correspond à l'expression régulière spécifiée. La valeur de retour de ceci est String []. C'est un tableau de type chaîne. Comme il est divisé par une expression régulière, il peut être divisé par autre chose qu'une virgule (,). L'étape suivante consiste à utiliser la méthode java.util.Arrays.asList pour convertir le tableau en liste.
Il peut être indépendant en tant que méthode comme indiqué ci-dessous.
/**
*Convertir de chaîne en liste
* @param str Chaîne convertie
* @retour Liste convertie
*/
private static List<String> stringToList(String line) {
return Arrays.asList(line.split(","));
}
Si vous répondez à la question à laquelle vous avez pensé, vous obtiendrez le code source ci-dessous. ~~ Il est normal d'utiliser un tableau au lieu d'une liste! !! Et Vous n'avez pas besoin de le convertir en liste! !! Veuillez ne pas dire "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();
}
}
}
S'il s'agit d'une liste,
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
List<String> list = Arrays.asList(line.split(","));
Si c'est un tableau
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
String[] strArray = line.split(",");
Recommended Posts