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

Decouper un String

darhkan
darhkan
Niveau 1
26 mars 2012 à 20:15:22

Bonsoir a tous,
Je vous présente mon probleme:
J'ai un projet de fin d'annee de BTS ou je dois realiser un robot en 3D et faire en sorte de reproduire des deplacement en direct.
J'ai donc programmer tout ça a l'aide d'OpenGL en java sous Eclipse.
Nous avons un vrai robot que nous pilotons a l'aide d'une manette de PS3 les déplacement sont enregistré puis je les reçoit et je dois reproduire ces mouvements en 3D.
Mon probleme est que je reçoit une trame sous forme d'un objet String qui se présente sous la forme suivante:

angle_en_degré1/angle_en_degré2/angle_en_degré3/et
c.....
J'ai donc plusieurs angles successifs séparés par des "/" j'aimerais découpé mon String pour enlevé les / et récuperer les valeurs séparement.
Auriez vous une idée de comment faire?
Merci d'avance

godrik
godrik
Niveau 30
26 mars 2012 à 20:20:16

regarde la doc de stringtokenizer

darhkan
darhkan
Niveau 1
26 mars 2012 à 20:30:24

Merci !

darhkan
darhkan
Niveau 1
29 mars 2012 à 13:40:24

En fait je reçoit un String grace a un client TCP qui ressemble a ça:
150/145/80/160/70
Je veux recuperer les valeur une par une en supprimant les "/"
Mais en utilisant StringTokenizer comme ceci :
angle = new BufferedReader(new InputStreamReader(input)).readLine();
System.out.println(""+angle);

StringTokenizer st = new StringTokenizer(angle,"/");
while (st.hasMoreTokens()) {
tabValeur[i] = st.nextToken();
i++;

}

J'ai une erreur que je n'arrive pas a résoudre:
Exception in thread "Thread-5" java.lang.ArrayIndexOutOfBoundsException: 5
at ClientTCP.recevoirAngle(ClientTCP.java:67)
at TestThread.run(TestThread.java:18)

Alors que quand j'enleve le Stringtokenizer tout mon programme marche très bien.
Merci d'avance

Bunyan
Bunyan
Niveau 17
29 mars 2012 à 14:14:28

Si ton séparateur est toujours le même et est bien /, utilise plutôt la méthode split sur ta string
(http://docs.oracle.com/javase/1.4.2/docs/api/java
/lang/String.html) et utilise ensuite un for étendu.

Si tu veux rester sur ta solution (qui est tout à fait fonctionnelle aussi, ainsi que correcte), ton problème vient du fait que tu as X cases dans ton tableau (donc tableau de 0 à X-1) et tu vas chercher la valeur X, donc en dehors du tableau (ce qui est la traduction de Array Index Out Of Bounds).

L'initialisation de ta i n'est pas apparente, donc j'imagine que tu dois l'initialiser à 1.

godrik
godrik
Niveau 30
29 mars 2012 à 14:35:39

Notons que cela dit quelquechose sur la securite de ton application. Si le client t'envoie

150/145/80/160/70/150/145/80/160/70/150/145/80/160
/70/150/145/80/160/70

ton application va toujours sauter, ce qui n'est pas une bonne chose du tout. Si tu connais a l'avance le nombre de token (et visiblement tu le connais puisque le tableau est deja alloue), alors tu devrais verifier ce nombre et renvoyer une exception pour que ton serveur aborte la connexion avec le client proprement et lui renvoie un code d'erreur.

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