> 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
44,99 €Assistant vocal Amazon Echo Show 5 avec Alexa à 44,99 €
Valable jusqu'au 03 Décembre

Amazon fait une promotion sur l'assistant vocal Amazon Echo Show 5 qui passe à 44,99 € (au lieu de 89,99 €). L'appareil piloté par la voix et vos doigts fonctionne avec Alexa, l’intelligence artificielle développée par Amazon. Vous pourrez avec elle écouter de la musique, interagir avec vos appareils domotiques, écouter les infos, des livres audio la radio, connaître la météo et d’accéder à des milliers d’autres possibilités grâce aux Skills : recettes de cuisine, petits jeux, etc.

Grâce à son écran de 5,5 pouces, vous pourrez également regarder des séries, des films, des photos, afficher des recettes de cuisine, appeler vos amis en visio, contrôler vos caméras de sécurité, etc...


> Voir l'offre
88,08 €Alimentation modulaire Seasonic Focus Plus Gold 650W (garantie 10 ans) à 88,08 € livrée
Valable jusqu'au 03 Décembre

Amazon Espagne fait une promotion sur l'alimentation Seasonic Focus Plus Gold 650W qui passe à 79,33 €. Comptez 8,75 € pour la livraison en France soit un total de 88,08 € livrée alors qu'on la trouve ailleurs à partir de 105 €. Le niveau frise la perfection avec une magnifique certification 80+ OR et un câblage full modulaire, le tout dans un silence de cathédrale. L'alimentation est garantie 10 ans.

 


> Voir l'offre
61,99 €Webcam Logitech HD Pro C920s à 61,99 €
Valable jusqu'au 01 Décembre

Amazon propose actuellement la webcam Logitech HD Pro C920s à 61,99 € alors qu'on la trouve ailleurs à partir de 85 €. La livraison est gratuite. Cette webcam avec micro intégré permet de faire des appels vidéos et des enregistrements en Full HD 1080p. La mise au point se fait automatiquement sur 20 paliers. 


> 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