× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > 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 poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
76,99 €Taille-haie sans-fil Tacklife GHT1B (lame 55 cm, 40V, Li-ion 2.5 Ah) à 76,99 € avec le code NRJUZO58
Valable jusqu'au 27 Septembre

Amazon fait une promotion sur le taille-haie sans-fil électrique Tacklife GHT1B avec sa batterie Li-ion 40V 2.5 Ah et son chargeur à 76,99 € avec le code promo NRJUZO58 au lieu de 109 €. Ce taille-haie offre une lame de coupe de 55 cm avec un espacement 20 mm entre les dents. La livraison est gratuite.


> Voir l'offre
49,99 €SSD PNY CS900 480 Go à 49,99 €
Valable jusqu'au 28 Septembre

Amazon fait une promotion sur le SSD PNY CS900 480 Go qui passe à 49,99 € livré gratuitement. Ce SSD offre des vitesses d'écriture de 515 Mo/s et de lecture à 550 Mo/s. Il est garanti 3 ans.


> Voir l'offre
17,99 €Détecteur de rayonnement électromagnétique Tacklife à 17,99 € (via coupon)
Valable jusqu'au 30 Septembre

Amazon fait une promotion sur le détecteur de rayonnement électromagnétique  Tacklife à 13,99 € grâce à un coupon de réduction à activer sur la page du produit et le code promo FAUC4JEF à saisir sur la page de paiement. Ce compteur vous permettra de mesurer autour de vous les champs électriques, les champs électromagnétiques et la température (téléphone, microonde, antenne, ...


> 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