Partage
  • Partager sur Facebook
  • Partager sur Twitter

prende un à un les caractères d'un String

Sujet résolu
    25 mai 2015 à 15:57:10

    Bonjour à tous,

    J'aurais besoin, pour un programme, que l'utilisateur entre une chaine de caractères de longueur indéfinie puis que le programme analyse 1 à 1 toutes les caractères (qui sont: 1,2,3,4,A,Z,E,R). On m'as conseillé d'utiliser un Hashmap pour directement donner une valeurs aux caractères( 1=1;2=2;3=4;4=1) mais je ne sais pas comment faire.

    Votre aide est la bienvenue :)

    Merci d'avance pour vos réponses!

    • Partager sur Facebook
    • Partager sur Twitter
      25 mai 2015 à 16:40:07

      Pas besoin de HashMap, tu peux utiliser simplement la méthod charAt du type String qui retourne le char à la position donnée.

      ex:

      String txt = "test";
      for(int i = 0; i < txt.length(); i++) {
          System.out.println(txt.charAt(i));
      }



      • Partager sur Facebook
      • Partager sur Twitter
        25 mai 2015 à 17:07:28

        Merci mais je voudrais en fait que le programme calcul la somme des points suivant la valeur attribué à chacune des touches:

        je m'explique:

        int u = 1;
        int i = 2;
        int o = 4;
        int p = 1;
        		
        int a = 1;
        int z = 2;
        int e = 4;
        int r = 1;

        les touches "UIOP" sont attribuées au joueur A, les touches "AZER" attribuées au joueur B,

        si on rentre comme chaîne de caractère :"apzoeuroizpa", j'aimerais que le programme sorte:" total des points de A: 13 points ET total des points de B: 11 points" (pour la phrase de sortie on s'en fiche je sais faire) par contre ce que je n'arrive pas à faire c'est que le programme prenne les lettres une à une et les additionnes suivant le joueurs à qui elles sont attribuée.

        Comment dois-je faire ?

        • Partager sur Facebook
        • Partager sur Twitter
          25 mai 2015 à 18:53:01

          Tu peux utiliser ce que TroyAndAbed t'a proposé et ensuite stocker ton résultat dans un tableau et effectuer les calculs que tu veux:

          	public void Point(String str){
          		int u = 1;
          		int i = 2;
          		int o = 4;
          		int p = 1;
          		         
          		int a = 1;
          		int z = 2;
          		int e = 4;
          		int r = 1;
          		
          		int resultat = 0;
          		
          		String str = new String("azer");
          		char [] charTab = new char[str.length()];
          
          		
          		//Boucle qui fragmente ta chaine de caractere et la stocke
          		
          		for(int w = 0; w < str.length();w++){
          			charTab[w] = str.charAt(w);
          		}
          
          		//Boucle qui calcule le nombre de points
          
          		for(int b = 0; b < charTab.length;b++){
          							
          			switch(charTab[b]){
          			case 'a':
          				resultat += a;
          				break;
          			case 'z':
          				resultat += z;
          				break;
          			case 'e':
          				resultat += e;
          				break;
          			case 'r':
          				resultat += r;
          				break;
          			case 'u':
          				resultat += u;
          				break;
          			case 'i':
          				resultat += i;
          				break;
          			case 'o':
          				resultat += o;
          				break;
          			case 'p':
          				resultat += p;
          				break;
          			default:
          					break;
          					
          			}
          			
          		}
          
          
          		System.out.println(resultat);
          
          		
          
          	}



          -
          Edité par Mahu 25 mai 2015 à 18:54:54

          • Partager sur Facebook
          • Partager sur Twitter
            25 mai 2015 à 19:21:58

            Merci de ton aide,j'ai juste modifié pour faire en sorte que les score du joeur A et B apparaissent différement:

            public static void main(String[] args) throws InterruptedException {
            		
            		System.out.println("enter : ");
            		Scanner r1 = new Scanner(System.in);
            		
            	
            		    int u = 1;
            		    int i = 2;
            		    int o = 4;
            		    int p = 1;
            		              
            		    int a = 1;
            		    int z = 2;
            		    int e = 4;
            		    int r = 1;
            		     
            		    int resultatB = 0;
            		    int resultatR = 0;
            		    
            		    String str1 = r1.nextLine();
            		    char [] charTab = new char[str1.length()];
            		 
            		     
            		    //Boucle qui fragmente ta chaine de caractere et la stocke
            		     
            		    for(int w = 0; w < str1.length();w++){
            		        charTab[w] = str1.charAt(w);
            		    }
            		 
            		    //Boucle qui calcule le nombre de points
            		 
            		    for(int b = 0; b < charTab.length;b++){
            		                         
            		        switch(charTab[b]){
            		        case 'a':
            		            resultatB += a;
            		            break;
            		        case 'z':
            		            resultatB += z;
            		            break;
            		        case 'e':
            		            resultatB += e;
            		            break;
            		        case 'r':
            		            resultatB += r;
            		            break;
            		       
            		        default:
            		                break;
            		                 
            		        }
            		         
            		    }
            		 
            		 
            		    System.out.println("le résultat du tireur BLEU est:" + resultatB + "\n");
            		 
            		    for(int b = 0; b < charTab.length;b++){
                            
            		        switch(charTab[b]){
            		        case 'u':
            		            resultatR += u;
            		            break;
            		        case 'i':
            		            resultatR += i;
            		            break;
            		        case 'o':
            		            resultatR += o;
            		            break;
            		        case 'p':
            		            resultatR += p;
            		            break;
            		       
            		        default:
            		                break;
            		                 
            		        }
            		         
            		    }
            		 
            		 
            		    System.out.println("le résultat du tireur ROUGE est:  " + resultatR + "\n"); 
            		 
            		}

            merci pour ton aide et merci pour ton aide a toi aussi Troy :)

            • Partager sur Facebook
            • Partager sur Twitter

            prende un à un les caractères d'un String

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown