CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[java] tableau de caractère

kinoouu
kinoouu
Niveau 7
02 janvier 2015 à 18:59:33

Bonjour,

je suis en licence 1 de math-informatique et j'ai un projet à faire . Je dois créé un yams seulement la j'ai juste besoin de savoir comment créé un tableau de caractère et faire rentrer dans chaque adresse de case un nom .
Merci d'avance pour vos réponses

Sapien111445
Sapien111445
Niveau 10
02 janvier 2015 à 19:31:01

Un tableau de caractère ou un tableau de chaines de caractère ? La différence est fondamentale :)

ryviel
ryviel
Niveau 5
02 janvier 2015 à 19:39:10

Et surtout, il faudrait indiquer le langage utilisé !

Sapien111445
Sapien111445
Niveau 10
02 janvier 2015 à 19:40:22

Tout est dans le titre Christophe :-)

kinoouu
kinoouu
Niveau 7
02 janvier 2015 à 19:45:32

ah oui désoler ^^ je suis débutant veuillez m'en excusez ...
C'est du Java sous linux et je recherche un tableau de chaine de caractère .
j'ai fait ceci pour remplir automatiquement le nom des joueurs :

Scanner sc = new Scanner(System.in);
nomjoueur = new char [nombrejoueurs];
for( i = 0 ; i <= nombrejoueurs-1 ; i++){
System.out.print("Veuillez entrer le nom du joueur " + i + 1 + " : ");
String [i] nomjoueur = sc.nextLine();
System.out.println(nomjoueur [i] );
}

seulement j'ai cette erreur :

ERROR in /home/.../yams2.java (at line 291)
String [i] nomjoueur = sc.nextLine();
^
Syntax error, insert ";" to complete Statement

Sapien111445
Sapien111445
Niveau 10
02 janvier 2015 à 19:50:11

Tu fais une erreur : tu utilises un tableau de char.
Quand je lis ton code j'ose comprendre que tu veux "lire" plusieurs chaines de caractères à la suite.

Cependant tu déclares un tableau de "char", alors que tu devrais déclarer un tableau d'objets "String".

De plus cette ligne est fausse : String [i] nomjoueur = sc.nextLine();.
Celle-ci devrait fonctionner : nomjoueur[i] = sc.nextLine();.

Pourquoi ? Pour réaliser l'affectation, tu dois indiquer le nom de la variable, ici il s'agit d'un tableau, tu dois également préciser la ligne.

Sapien111445
Sapien111445
Niveau 10
02 janvier 2015 à 19:52:58

Ce code devrait mieux fonctionner :)

Scanner sc = new Scanner(System.in);
String nomjoueur[] = new String[nombrejoueurs];
for( i = 0 ; i <= nombrejoueurs-1 ; i++){
System.out.println("Veuillez entrer le nom du joueur " + i + 1 + " : ");
nomjoueur[i] = sc.nextLine();
System.out.println(nomjoueur [i] );
sc.nextLine(); // cette instruction évite un problème de dépassement de tampon
}
kinoouu
kinoouu
Niveau 7
02 janvier 2015 à 19:56:32

Comment déclare t on un tableau d'objets string ?
car en faite c'est un travail optionnel que je fais et le prof ne nous l'a pas enseigné et je le verrais au second semestre .
Merci encore pour vos réponses a tous

Sapien111445
Sapien111445
Niveau 10
02 janvier 2015 à 19:57:46
typeDesObjetsDuTableau leNomDuTableau[] = new typeDesObjetsDuTableau[laTailleDuTableau];
kinoouu
kinoouu
Niveau 7
02 janvier 2015 à 19:57:59

ah j'avais pas vu ta seconde réponse ^^
autant pour moi .
Merci beaucoup je vais étudier ça et je te re confirmerais si j'ai compris
merci encore

Sapien111445
Sapien111445
Niveau 10
02 janvier 2015 à 19:58:34

Par exemple :

int tableauEntier[] = new int[6]
// marche aussi :
int[] tableauEntier2 = new int[6];
kinoouu
kinoouu
Niveau 7
02 janvier 2015 à 19:59:48

Excuse ma curiosité mais qu'est-ce qu'un depassement de tampon ?

Sapien111445
Sapien111445
Niveau 10
02 janvier 2015 à 20:01:42

Essaye de lire plusieurs chaines à la suite, affiche-les, et tu verras ce qu'il se passe :)

kinoouu
kinoouu
Niveau 7
02 janvier 2015 à 20:03:57

En faite ça affiche le nom du joueur une deuxème fois et demande de rappuyer sur entrée pour rentrer le prochain nom . Ca permet une meilleure lisibilité C'est ça ?

ryviel
ryviel
Niveau 5
02 janvier 2015 à 20:49:10

Ah oui c'est de ma faute :p (Les fêtes de fin d'année/début d'année me fatiguent XD)

D'ailleurs, on se connait Sapien111445 ? ^^

TheMightyEagle
TheMightyEagle
Niveau 1
03 janvier 2015 à 01:06:01

Le 02 janvier 2015 à 20:03:57 kinoouu a écrit :
En faite ça affiche le nom du joueur une deuxème fois et demande de rappuyer sur entrée pour rentrer le prochain nom . Ca permet une meilleure lisibilité C'est ça ?

Oui et non, les caractères tapés au clavier sont stockés sur une mémoire intermédiaire appelée mémoire tampon ou buffer. Cette mémoire est de taille limitée, mais si tu ne fais pas de test particulier sur ce qui est stocké dedans, tu peux dépasser les limites de ce morceau de mémoire et te retrouver à écrire dans des zones mémoires auxquelles tu n'aurais pas du avoir accès. C'est d'ailleurs un type d'attaque assez connu (attaque par buffer overflow - http://fr.wikipedia.org/wiki/D%C3%A9passement_de_tampon).

Du coup, si je ne dis pas de bêtises, l'intérêt de faire un nextline() est de vidanger la mémoire du buffer, ce qui limite les risques (de manière générale, les méthodes proposant de lire des entrées du clavier sont plutôt fragiles de ce point de vue là)

kinoouu
kinoouu
Niveau 7
03 janvier 2015 à 14:37:49

Ah d'accord, merci pour l'information . Mais je pense que je vais pas le mettre car le prof me demandera où j'aurais trouver cela et en quoi ça consiste car ce n'est pas encore de mon niveau .
Merci à tous pour votre aide et bonne journée

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment