0
votes

Comment scinder les chaînes et les stocker sur la liste ou la carte?

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 string.equals code> pour correspondre si elle (chaîne) est présente dans les données Structure ou non. P>

J'ai essayé quelque chose comme ça. Mais dans la sortie, je reçois "vrai" fort> consécutivement au lieu de cordes. P> xxx pré>

fileprocessor.java strong> P>

true
true
true
true
.
.
.
true


0 commentaires

6 Réponses :


2
votes

Le problème ici est que vous imprimez le résultat de l'appel de la fonction résultat.Add () . Vous devrez appeler résultat.add () sur une ligne différente et appeler uniquement string.valueof (lignes) ou résultat (// index du dernier Ajouter ) dans l'appel à system.out . Vous pouvez également faire boucle via résultat après avoir le même résultat.


0 commentaires

2
votes

Remarque: ce n'est pas une réponse complète, mais cela devrait vous permettre de résoudre votre problème.

Dans votre relevé d'impression system.out.println (résultat.Add (String.Valueof (lignes))); Vous imprimez la valeur de retour de la méthode de la valeur de chaîne que vous avez analysée. Essayez d'imprimer résultat à la place.


0 commentaires

1
votes

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 xxx

pour votre sortie, vous devez être imprimé, xxx


0 commentaires

1
votes

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
// ...


0 commentaires

1
votes

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);  
    }
}


0 commentaires

0
votes

J'utiliserais Guava 'Splitter' pour ce travail: XXX PRE>

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));


0 commentaires