> 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
80,45 €Alimentation semi modulaire Corsair CX750M (750W, 80Plus Bronze) à 80,45 €
Valable jusqu'au 26 Janvier

RueDuCommerce fait une promotion sur l'alimentation semi modulaire Corsair CX750M 750W 80Plus Bronze qui passe à 80,45 €. On la trouve ailleurs à partir de 110 €. Cette alimentation est silencieuse et est certifiée 80PLUS bronze qui offre des rendements de plus de 82% en charge. Elle est garantie 3 ans.


> Voir l'offre
796,84 €PC portable Dell Inspiron 14 2 en 1 (FHD tactile, Ryzen 7 5700U, 16Go/512Go, Windows 11) à 796,84 €
Valable jusqu'au 25 Janvier

Dell fait une promotion sur le PC portable 14 pouces Dell Inspiron 14 7415 qui passe à 796,84 € avec le code DLBINSP2 au lieu de 999 €. 

Ce portable possède un écran Full HD tactile que vous plier à 360° pour transformer l'ordinateur en tablette. Il a un processeur AMD Ryzen 7 5700U, 16 Go de RAM et un SSD M.2 NVMe de 512 Go. Le tout tourne sous Windows 11. Au niveau connectique, vous trouverez 2 x USB 3.1, 1xUSB 4.0 Type-C avec DisplayPort et Power Delivery, un port HDMI 1.4b, un lecteur microSD, le WiFi 6 et le bluetooth 5.1. Comptez une autonomie d'une dizaine d'heures. Une excelle affaire !

Pour profiter de l'offre, sélectionnez dans la liste le portable Inspiron 14 2 en 1 à 838,76 € avec la remise immédiate de 160 €. Utilisez le code DLBINSP2 dans votre panier pour passer le prix à 796,84 €.


> Voir l'offre
15,97 €Carte mémoire SDXC SanDisk Extreme 64 Go à 15,97 €
Valable jusqu'au 27 Janvier

Fnac fait une promotion sur la carte mémoire SDXC SanDisk Extreme 64 Go à 15,97 €. Cette carte mémoire est certifiée classe 10 U3 et autorise des débits de 70 Mo/s en capture et 150 Mo/s en transfert.


> 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