J'essaie de lire un fichier d'entrée, diviser les chaînes et stockez-les dans une liste ou une carte. Quelqu'un peut-il aider?
Je dois le stocker dans une structure de données telle qu'une liste ou une carte et la comparer avec la fonction J'ai essayé quelque chose comme ça. Mais dans la sortie, je reçois fileprocessor.java strong> P> string.equals code> pour correspondre si elle (chaîne) est présente dans les données Structure ou non. P> true
true
true
true
.
.
.
true
6 Réponses :
Le problème ici est que vous imprimez le résultat de l'appel de la fonction résultat.Add () code>. Vous devrez appeler résultat.add () code> sur une ligne différente et appeler uniquement string.valueof (lignes) code> ou résultat (// index du dernier Ajouter ) code> dans l'appel à system.out code>. Vous pouvez également faire boucle via résultat code> après avoir le même résultat. P>
Remarque: ce n'est pas une réponse complète, mais cela devrait vous permettre de résoudre votre problème. P>
Dans votre relevé d'impression system.out.println (résultat.Add (String.Valueof (lignes))); code> Vous imprimez la valeur de retour de la méthode code> code> de la valeur de chaîne que vous avez analysée.
Essayez d'imprimer résultat code> à la place. P>
Votre scission fonctionne bien,
Le problème est que vous imprimez une valeur booléenne renvoyée par list.add ();
RÉSULTAT.ADD RETOURNANT VRAI QUE VOUS IMPRESSION.
Vérifiez ici pour votre sortie, vous devez être imprimé, p>
Vous pouvez utiliser arranges.tostring (...) code> pour imprimer ce tableau dans une seule ligne:
Arrays.stream(lines).forEach(System.out::println); // ADD_VIDEO // video1 // ADD_VIDEO // video2 // ...
Le problème est que vous imprimez dans la boucle tandis que si elle a été ajoutée à la liste ou non, ce qui vous donnera true ou false, vous n'imprimez pas l'élément de la liste
public class Main {
public static void main(String[] args) throws IOException {
FileProcessor readInputFile;
readInputFile = new FileProcessor(args[0]);
String line = null;
List<String> result = new ArrayList<>();
while(null != (line = readInputFile.poll())) {
String lines[] = line.split("::|__|,|=|-|\\]|\\[");
result.add(String.valueOf(lines));
}
result.stream().forEach(System.out::println);
}
}
J'utiliserais Guava 'Splitter' pour ce travail: Ceci imprimera: P> List<String> result = new ArrayList<>();
while(null != (line = readInputFile.poll())) {
result.addAll(Splitter.onPattern("::|__|,|=|-|\\]|\\[").omitEmptyStrings().splitToList(line));
}
result.forEach(str -> System.out.println(str));