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] Algorithme qui change la lettre

bgaskip
bgaskip
Niveau 9
15 mai 2016 à 16:25:49

Je cherche un algo qui change la lettre du genre "a" , "b" ... "z" puis ensuite "aa" "ab" ac" svp je galère vraiment sur le sujet car j'ai trop programmé hier et là mon cerveau a besoin de repos, surtout que c'est juste une "option" que je veux permettre a mon programme donc c'est chian de pencher sur sa quoi :(

merci !

bgaskip
bgaskip
Niveau 9
15 mai 2016 à 16:29:26
package App;

public class NameManager {
	private static String start_name;
	
	public static void init(String start_name) {
		NameManager.start_name = start_name;
	}
	
	public static String nextName(int i) {
		return start_name + i; // retourne start_name avancé du genre : si start_name est A alors je retourne A+i genre si i == 2 A+2 -> C
	}
}
Cj1993
Cj1993
Niveau 12
15 mai 2016 à 16:56:36

Je ne comprends pas vraiment ce que tu veux faire, retourner toute les sous-chaines d'une chaine de caractère pour pouvoir agir dessus ?
donne un exemple d'entrée/sortie de ton algo.

Message édité le 15 mai 2016 à 16:57:01 par Cj1993
bgaskip
bgaskip
Niveau 9
15 mai 2016 à 17:57:12

Exemple :


NameManager.init("A"); // la premiere lettre est a
String lettre = NameManager.nextName(5); // retourne A + 5 -> F
String lettre2 = NameManager.nextName(0); // retourne A
String lettre3 = NameManager.nextName(26 + 1); // retourne AA

Cj1993
Cj1993
Niveau 12
15 mai 2016 à 18:18:54

Je pense qu'il y a moyen de faire ça :)
Je me pose la question, et si on fait
NameManager.init("JVDOTCOM"); String lettre = NameManager.nextName(654);

Tu veux que ça marche aussi du coup ?

bgaskip
bgaskip
Niveau 9
15 mai 2016 à 18:24:43

Le 15 mai 2016 à 18:18:54 Cj1993 a écrit :
Je pense qu'il y a moyen de faire ça :)
Je me pose la question, et si on fait
NameManager.init("JVDOTCOM"); String lettre = NameManager.nextName(654);

Tu veux que ça marche aussi du coup ?

ahah non ^^ à la base c'est pour les matrices, je veux créer des points du genre la matrice carrée 4x4 bah j'aurais abcd comme points puis si on dépasse 26 points éventuellement aa puis ab etc... mais sans aller trop loin :-p

bgaskip
bgaskip
Niveau 9
15 mai 2016 à 18:27:07

ps : JVDOTCOM est impossible car JV n'est pas complet ... pour avoir un mot de la taille de JVDOTCOM il faut :
J V D O T C O M
Z Z Z Z Z Z Z M du coup ya que le M qui reste

ps2 : en gros NameManager.init(str) doit avoir en param str avec une longueur de 1 (str.length = 1)

Message édité le 15 mai 2016 à 18:28:09 par bgaskip
ElSalad
ElSalad
Niveau 9
19 mai 2016 à 01:39:50

J'ai pas exactement compris ce que tu voulais mais pour changer une lettre faut que tu regardes le code ASCII de ta première lettre puis tu addtionnes le nombre voulu. Si tu fais char c = 85 ou un truc du genre (regarde sur google) 'c' est égal au caractère correspondant à ce nombre dans le tableau ascii.

Donc si A = 85, 85+3 = 88 = D.

Message édité le 19 mai 2016 à 01:44:34 par ElSalad
VIeRepublique
VIeRepublique
Niveau 20
19 mai 2016 à 03:41:03

Pas besoin de connaitre une table ASCII, on peut très bien faire des maths avec les chars.
public static String strpp(String str){ int i = str.length()-1; char[] chars = str.toCharArray(); while(++chars[i] > 'z' && i!=0){ chars[i] = 'a'; chars[--i]++; } return new String(chars); } public static void main(String[] args) { System.out.println(strpp(new java.util.Scanner(System.in).nextLine())); }

ça ne marchera pas si tous les caractères sont des 'z', flemme d'implémenter ça, mais en gros il faudra retourner une chaîne de longueur n+1. Bref c'est comme un système de numérotation.

Message édité le 19 mai 2016 à 03:45:07 par VIeRepublique
Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment