-1
votes

Comment analyser une ligne de texte avec deux pièces de données distinctes?

Je suis nouveau à analyser (et à nouveau à Java), alors je veux juste être sûr que je conceptine cela correctement.

J'ai écrit un programme permettant à l'utilisateur de coller du texte dans un champ de texte, puis cliquez sur le bouton "Données d'analyse". Ce bouton analyse le texte de deux pièces de données: un nom et un numéro. P>

Les données de texte sont généralement collées par l'utilisateur dans ce formulaire: p>

john

48915

beth

10431


7 commentaires

Pourquoi ne pas simplement utiliser la méthode suivante () déjà délimitée par WhitSpace?


Je me débarrasserais de parser.usedelimiter ("\\ n"); . Vous vous tirez dessus au pied avec cela.


Utilisez le délimiteur par défaut.


Pardonne à mon ignorance, est une nouvelle ligne considérée comme espagnol par la méthode suivante ()?


WhitSpace Char est blancheur de caractères. Je suis surpris que vous ne vérifiez pas cela au début :)


Il y a tellement de façons de peaufler ce chat et vous devriez expérimenter plusieurs d'entre eux, y compris la lecture dans chaque ligne via .nextline () puis diviser la ligne, vs à l'aide d'objets de scanner imbriqué, un à Lisez chaque ligne du fichier et de l'autre pour analyser chaque ligne obtenue, ....


... oh et aussi vous pourriez analyser le fichier en utilisant Le Java 8 diffuse API .


3 Réponses :


1
votes

Voici un exemple de mise en œuvre pour votre cas, qui offre plus de contrôle et de plus flexibilité pour accueillir le changement de délimiteurs - xxx pré>

et, après la sortie de l'extrait de code ci-dessus - P >

john
48915
beth
10431
frank
10112
anne
34887
taserface
90090
bill
56448


0 commentaires

2
votes

Votre problème est que vous êtes USIMG \ n comme délimiteur. Cela conduit au comportement que l'entrée que vous passez à votre scanner n'est délimitée que dans les luges et non comme vous vous attendez également à des espaces blanchisseurs.

Une solution serait fonctionnant consiste à supprimer simplement la ligne suivante: analyseur .USéelimiter ("\\ n");


une solution qui fonctionnerait également est la suivante: xxx

ceci conduit à la sortie suivante:

John 48915 beth 10431 franc 10112 annane 34887 taserface 90090 facture 56448

La solution vous donne un peu plus de contrôle sur les lignes et comment analyser le nom et le numéro.


1 commentaires

C'était la conclusion exacte que je suis arrivée après un certain temps de bricolage. Merci beaucoup pour confirmer et prendre le temps



0
votes

Vous pouvez atteindre cette fonctionnalité avec la méthode de la chaîne renversée, ci-dessous est le même programme et la même sortie que vous le souhaitez.

Je pense que l'utilisateur de l'espace ne peut pas aller à la ligne suivante lors du remplissage de formulaire. xxx


0 commentaires