> Tous les forums > Forum Autres langages
 Ameliorer le Main "Java" avec les fonctions & procédures
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Labougie
  Posté le 31/05/2015 @ 20:49 
Aller en bas de la page 
Groupe Sécurité

Bonjour,

Je souhaite utiliser toutes les fonctions dans mon "main", hélas, je n'y arrive pas pour les méthodes / procédures

  • ajouter
  • rechercher

je ne comprends pas comment les utiliser pour parvenir à mes fins.

Merci pour vos conseils

Le code est pourtant simple

import java.util.ArrayList;

public class Repertoire {

public static void main(String args[]) {

ArrayList<String> noms = new ArrayList<String>();
ArrayList<String> numeros = new ArrayList<String>();

Terminal.ecrireString("Quel est le nom à ajouter? ");
String nom = Terminal.lireString();
noms.add(nom);
Terminal.ecrireString("Quel est le numéro à ajouter? ");
String numero = Terminal.lireString();
numeros.add(numero);

Terminal.sautDeLigne();
afficher(noms,numeros);

rechercher(noms,"maurice");


} // fin de main

// Fonction ajouter un nom et un numero

public static void ajouter(ArrayList<String> noms ,ArrayList<String>numeros, String nom, String numero){

noms.add(nom);
numeros.add(numero);
}

// afficher repertoire
public static void afficher(ArrayList<String> nom, ArrayList<String> numero){

Terminal.ecrireStringln("Voici la liste des noms et des numéros correspondants : ");

for (int i = 0 ; i < nom.size() ; i++){

Terminal.ecrireString( nom.get(i) + " ");

for (int j = 0 ; j <= i ; j++){

Terminal.ecrireString( numero.get(j) + " ");
}
}

}

// Rechercher un contact

public static int rechercher(ArrayList<String> noms, String nom){

return noms.indexOf(nom);

}


} // fin de class

labougie

Publicité
Labougie
 Posté le 02/06/2015 à 07:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Bonjour JP,

Le code est bien de moi, .

Les méthodes de ArrayList font que parfois je me perds, notamment pour indexOf(String s)

déf:

Renvoie l'indice de la première occurrence de la chaine s dans la chaine. Par exemple "un deux trois".indexOf("deux") renvoie 3, car la chaine "deux" commence à l'indice 3 de la chaine "un deux trois".

Et j'ai du mal avec cette définition, car ce tableau de chaine

unespacedeuxespacetrois donne les indices suivants, ou alors je me gourre compètement

0 - 1 - 2 - 3 - 4

donc deux tombes sur 2, à moins qu'avec indexOf, le compte parte de 1 au lieu de 0 ce qui ferais bien 3 dans ce cas de figure


Maintenant pour mon code, le retour de 1 si nous laissons le code en l'état, nous invite à faire un if sur 1 pour indiquer la présence ou 0 pour l'absence, c'est bien ainsi qu'il faut comprendre et utiliser le résultat .


je note ceci

En second : il ne faut jamais reprendre les mêmes

identificateurs ( le nom des variables ) pour les

paramètres formels des méthodes et pour les paramètres

effectifs d'appel. Car il s'agit d'objets différents.

Par exemple, moi, j'ai l'habitude professionnellement

d'utiliser "variable" pour la méthode et "variableAppel"

pour l'appel. Donc nom dans une méthode donne nomAppel

pour son utilisation.

dans mon petit crâne de jeune padawan .

labougie

Labougie
 Posté le 02/06/2015 à 19:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Bonsoir JP,

on script est fort instructif ; cependant quand je l'emploie pour ma définition du cours, je n'obtiens pas la même réponse

import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String[] args) {

ArrayList<String> arrlistdeux = new ArrayList<String>();

arrlistdeux.add("un deux trois quatre");

// retrieving the index of element "deux"
retval=arrlistdeux.indexOf("deux");
System.out.println("The element deux is at index " + retval);

}

}

J'obtiens le résultat de (-1), alors pourquoi la définition donne

Renvoie l'indice de la première occurrence de la chaine s dans la chaine. Par exemple "un deux trois".indexOf("deux") renvoie 3, car la chaine "deux" commence à l'indice 3 de la chaine "un deux trois".

Merci pour ton conseil sur cette inconpréhension

labougie

Labougie
 Posté le 02/06/2015 à 19:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Ton exemple donne bien la bonne valeur, 1 car effectivement avant nous avons zéro.


Si je pars de l'exemple de la définition

System.out.println("un deux trois".indexOf("deux"));

le résultat est 3, c'est à dire que dans une chaine, le compte de départ commence à 1, c'est ainsi qu'il faut comprendre le fonctionnement, c'est ce que j'en infère.

labougie

Labougie
 Posté le 02/06/2015 à 21:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Merci pour ton lien,

Pour ceci

Donc retval=arrlistdeux.indexOf("deux");

retourne -1 car la chaine "deux" n'est pas

présente dans ta liste : "un deux trois quatre"

Je pensais que indexOf() allait chercher dans une chaine (ou un texte) le mot cité, mais ce n'est pas ainsi qu'il faut le comprendre.

labougie

Labougie
 Posté le 03/06/2015 à 15:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Bonjour J.phi,

La méthode indexOf() appliquée sur un ArrayList ne fonctionne

pas comme un indexOf() appliqué sur un String. Tu es en présence

de 2 méthodes différentes portant le même nom mais qui agissent

différemment suivant le type de l'objet utilisé.

Je ne peux pas le deviner tout seul, quelle idée de nommer par la même chose, quelque chose qui fonctionne pas pareil,,, y sont fous ces programmeurs .

Cela étant, tu réponds complètement à ma question .

labougie

Labougie
 Posté le 03/06/2015 à 15:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Je suis en train de penser, si cela m'arrive de temps en temps.

Je souhaite parcourir un texte, puis chercher un mot ou groupe de mot,

J'ai donc une ArrayList qui sera constituée de tous les fichiers texte

dans lesquels je recherche une chaine (mot ou groupe de mots), comment extraire et indiquer que le mot ou le groupe de mot fait matche?

ArrayList<String> arrlist = new ArrayList<String>();

arrlist.add(path du fichier1); cela doit pouvoir se faire dans une boucle, ici c'est pour l'exemple
arrlist.add(path du fichier2);
arrlist.add(path du fichier3);
arrlist.add(path du fichier4);

Comment je matche le mot "bidul" dans chaque fichier 1.2.3.4

je pensais plus à ceci en fonctionnement pour indexOf(), sans doute il existe une autre méthode pour se style de recherche.

labougie

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
149,90 €Carte mère MSI MPG Z590 Pro WiFi à 149,90 €
Valable jusqu'au 24 Janvier

RueDuCommerce fait une promotion sur la carte mère MSI MPG Z590 Pro WiFi à 149,90 € au lieu de 220 €.  La carte mère MSI Z590 PRO WIFI est conçue pour accueillir les processeurs Intel sur socket LGA 1200. Elle permettra l'assemblage d'une configuration puissante et polyvalente capable de s'acquitter de toutes les tâches. Gaming, Streaming, multitâche intensif, création multimédia, c'est la solution idéale pour concevoir un PC haut de gamme ultra-performant. Elle prend en outre en charge la RAM DDR4, les cartes graphiques PCI-Express 4.0 16x, les disques SATA 6 Gb/s et M.2 PCIe 4.0 et les périphériques USB 3.1 et USB 3.2. 


> Voir l'offre
379,99 €Ecran PC 34 pouces incurvé Dell S3422DWG (UWQHD, VA, 144 Hz, 1 ms, FreeSync) à 379,99 €
Valable jusqu'au 24 Janvier

Boulanger sur Rakuten fait une promotion sur l'écran PC 34 pouces incurvé  Dell S3422DWG qui passe à 379,99 € au lieu de 469 € ailleurs. Cet écran possède une dalle VA UWQHD  (3440x1440) à 144 Hz et avec un temps de réponse de 1 ms. Il est compatible FreeSync (et GSync via Adaptive Sync). La hauteur, l'inclinaison et la rotation de l'écran sont réglables. 2 ports HDMI et 1 port DP. Il peut faire également office de hub USB 3 (4 ports).

19 € en points Rakuten vous sont également reversés pour vos prochains achats.


> Voir l'offre
13,99 € | 14,99 €Forfaits mobiles Sosh Appels/SMS/MMS illimités Europe + 60 Go Internet à 13,99 € (80 Go à 14,99 €)
Valable jusqu'au 25 Janvier

Sosh lance les offres Internet 60 Go à 13,99 € et Internet 80 Go à 14,99 € pour ses forfaits mobiles avec appels et SMS/MMS illimités depuis la France et l'Europe. Sans engagement : vous pouvez résilier à tout moment.


> Voir l'offre

Sujets relatifs
Recherce de cours avec exemple de java swing
pb avec java
PROBLEMES AVEC MESSAGE JAVA
ouvrir word ou autre et charger un doc avec java
blocage avec java
relation client (java)- serveur avec tomcat
probleme avec des tableChanged en java
pb avec fichier JAVA
Classe java pour la connexion avec MySQL
script java avec foxmail
Plus de sujets relatifs à Ameliorer le Main "Java" avec les fonctions & procédures
 > Tous les forums > Forum Autres langages