Java-présence d'un nom dans un tableau
domxaline
-
domxaline -
domxaline -
Bonjour,
but de mon programe est:
Ecrire un programme qui demande à l' utilisateur d' entrer un caractère. Puis le programme affiche tous les noms pré-enregistrés dans le system et commençant par ce caractère. On ne tient pas compte de la casse du caractère (majuscule ou minuscule).
j'ai ecris mon programme ainsi:
je l'ai compilé et exécuté
le resultat n'est pas bon, quelqu'un peut m'aider
Entrez un nom:D
la liste des noms commençant par D est:
Simon
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(Unknown Source)
at essaie.main(essaie.java:14)
Entrez un nom:c
la liste des noms commençant par c est:
Simon
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(Unknown Source)
at essaie.main(essaie.java:14)
but de mon programe est:
Ecrire un programme qui demande à l' utilisateur d' entrer un caractère. Puis le programme affiche tous les noms pré-enregistrés dans le system et commençant par ce caractère. On ne tient pas compte de la casse du caractère (majuscule ou minuscule).
j'ai ecris mon programme ainsi:
import java.util.Scanner;
public class essaie
{
public static void main (String [] args)
{
String[]tab={"Simon","Chris","David","Sarko","Sego","Hardy","Patrick","Franck","Samir"};
System.out.print("Entrez un nom:");
Scanner sc=new Scanner(System.in);
String c=sc.nextLine();
System.out.println("la liste des noms commençant par "+ c + " est:");
for(int i=0;i<tab.length;i++)
{
if(tab[i].charAt(i)=='s'||tab[i].charAt(i)=='S')
System.out.println(tab[i]);
}
}
}
je l'ai compilé et exécuté
le resultat n'est pas bon, quelqu'un peut m'aider
Entrez un nom:D
la liste des noms commençant par D est:
Simon
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(Unknown Source)
at essaie.main(essaie.java:14)
Entrez un nom:c
la liste des noms commençant par c est:
Simon
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(Unknown Source)
at essaie.main(essaie.java:14)
A voir également:
- Java-présence d'un nom dans un tableau
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Tableau word - Guide
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
5 réponses
en corrigeant la ligne suivant
String[]tab={"Simon","Chris","David","Sarko","Sego","Hardy","Patrick","Franck","Samir"};
comme ceci:
String[]tab={"Simon","Chris","David","Sarko","Sego"};
prg marche mais resultat est faux
Entrez un nom:D
la liste des noms commençant par D est:
Simon
Entrez un nom:C
la liste des noms commençant par C est:
Simon
Entrez un nom:s
la liste des noms commençant par s est:
Simon
String[]tab={"Simon","Chris","David","Sarko","Sego","Hardy","Patrick","Franck","Samir"};
comme ceci:
String[]tab={"Simon","Chris","David","Sarko","Sego"};
prg marche mais resultat est faux
Entrez un nom:D
la liste des noms commençant par D est:
Simon
Entrez un nom:C
la liste des noms commençant par C est:
Simon
Entrez un nom:s
la liste des noms commençant par s est:
Simon
salut,
essayer de remplacer l'instruction suivante :
if(tab[i].charAt(i)=='s'||tab[i].charAt(i)=='S')
System.out.println(tab[i]);
par celle ci:
if(tab[i].charAt(0)==toUpperCase(c) || tab[i].charAt(0)==toLowerCase(c))
System.out.println(tab[i]);
essayer de remplacer l'instruction suivante :
if(tab[i].charAt(i)=='s'||tab[i].charAt(i)=='S')
System.out.println(tab[i]);
par celle ci:
if(tab[i].charAt(0)==toUpperCase(c) || tab[i].charAt(0)==toLowerCase(c))
System.out.println(tab[i]);
Salut,
Cordialement,
Dan
public static void main (String [] args)
{
String[]tab={"Simon","Chris","David","Sarko","Sego","Hardy","Patrick","Franck","Samir"};
System.out.print("Entrez un nom:");
Scanner sc=new Scanner(System.in);
String c=sc.nextLine();
c = c.toUpperCase(); // ajouter
System.out.println("la liste des noms commençant par "+ c + " est:");
for(int i=0;i<tab.length;i++)
{
//if(tab[i].charAt(i)=='s'||tab[i].charAt(i)=='S')
if(tab[i].startsWith(c))
System.out.println(tab[i]);
}
}
Cordialement,
Dan
Re,
On peut aussi gérer le cas sans noms trouvés:
On peut aussi gérer le cas sans noms trouvés:
public static void main (String [] args)
{
String[]tab={"Simon","Chris","David","Sarko","Sego","Hardy","Patrick","Franck","Samir"};
System.out.print("Entrez un nom:");
Scanner sc=new Scanner(System.in);
String c=sc.nextLine();
c = c.toUpperCase(); // ajouter
boolean pasDeNom = false; // ajouter
//System.out.println("la liste des noms commençant par "+ c + " est:");
for(int i=0;i<tab.length;i++)
{
//if(tab[i].charAt(i)=='s'||tab[i].charAt(i)=='S')
if(tab[i].startsWith(c))
{ // ajouter
// ajouter les 2 lignes qui suivent
if (pasDeNom == false)
System.out.println("la liste des noms qui commencent par "+ c + " est:");
System.out.println(tab[i]);
pasDeNom = true; // ajouter
} //ajouter
}
// ajouter
if (pasDeNom == false)
System.out.println("Il n'y a pas de noms qui commencent par " + c);
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question