× 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
29,99 €Clavier sans fil Logitech Wireless Desktop K400 Plus avec pavé tactile à 29,99 €
Valable jusqu'au 14 Juillet

Amazon fait une promotion sur le clavier sans fil Logitech Wireless Desktop K400 Plus à 29,99 € livré gratuitement. Ce clavier sans fil dispose d'un large pavé tactile de 9 cm avec navigation multipoint pour un pointage à un doigt simplifié et un défilement vertical à deux doigts. Idéal pour contrôler votre ordinateur à distance, s'il est connecté à une TV par exemple. On le trouve ailleurs à partir de 40 €. 


> Voir l'offre
72,81 €Kit de 16 Go (2 x 8 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz à 72,81 € livré
Valable jusqu'au 14 Juillet

Amazon Allemagne fait une belle promotion sur le kit de 16 Go (2x8 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz qui passe à 68,17 €. Comptez 4,64 € pour la livraison en France soit un total de 72,81 € livré. Une très bonne affaire !


> Voir l'offre
52,99 €Clé USB 3.0 et Micro USB Sandisk Ultra OTG 256 Go à 52,99 €
Valable jusqu'au 14 Juillet

Amazon fait une promotion sur la nouvelle version de la clé USB 3.0 SanDisk Dual Drive 256 Go qui passe à 52,99 € livrée gratuitement. La particularité de cette clé USB réside dans le fait qu'elle dispose à la fois d'un connecteur USB pour la brancher sur votre ordinateur ou votre TV, mais également d'un connecteur micro USB pour la brancher sur votre smartphone ou votre tablette. Compatible USB 3.0 (et 2.0), cette clé USB offre des débits jusqu'à 150 Mo/s. 


> 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