2013-04-12 3 views
0

J'essaie de comparer 2 chaînes différentes. mais je ne cherche pas s'ils ont exactement la même chose, je regarde s'ils contiennent le même nombre de chiffres.Comparez si les chaînes ont le même nombre de chiffres

Exemple: iF mon l'String b = 1234567891234567 et je suis entré dans le String a = abcdefghijklmnop, je veux savoir si elles ont le même nombre de chiffres,

import java.util.*; 

class Test{ 

    public static void main(String[] args){ 
     Scanner lector = new Scanner(System.in); 
     String a; 
     String b = new String("1234567891234567"); 

     System.out.println("Enter your number"); 
     a = lector.nextLine(); 

     if(a.length() == b.lenght()){ 
      System.out.println("They have the same number of digits"); 

     }else{ 
      System.out.println("They dont have the same number of digits"); 
     } 
    } 
} 

Je sais que je ne peux pas utiliser le == parce qu'ils sont pour les entiers . Si j'utilise l'instruction equals, le programme compare si la chaîne entrée est exactement comme l'autre chaîne.

J'espère que quelqu'un peut m'aider.

Merci

+1

S'il vous plaît fournir le code de travail tout d'abord, je veux savoir que si je passe de temps à aider Je ne suis pas obligé de vous aider à surmonter les erreurs de syntaxe. – djechlin

+3

Par "chiffres" voulez-vous dire "caractères"? – NPE

Répondre

2

si vous devez vérifier les longueurs de la chaîne puis utilisez simplement

a.length() == b.length() 
3

Vous pouvez extraire les chiffres avec:

str.replaceAll("\\D+",""); 

puis comparer la longueur des cordes.

Pour votre exemple:

public static void main(String[] args){ 
    Scanner lector = new Scanner(System.in); 
    String a; 
    String b = new String("1234567891234567"); 

    System.out.println("Enter your number"); 
    a = lector.nextLine(); 

    if(a.replaceAll("\\D+","").length() == b.replaceAll("\\D+","").length()){ 
     System.out.println("They have the same number of digits"); 

    }else{ 
     System.out.println("They dont have the same number of digits"); 
    } 
} 
+0

Je l'ai essayé comme ça mais ça n'a pas marché. –

+0

Quand il me demande: Entrez votre numéro et j'ai entré: abcdefghijkmnlop après avoir fait cela le message: Ils n'ont pas le même nombre de chiffres est affiché. Et si vous comptez les deux valeurs 1234567891234567 vs abcdefghijkmnlop ils ont le même nombre de chiffres –

+1

La confusion ici réside dans l'utilisation du mot "chiffres" au lieu de "caractères". La réponse de Nick ici vérifie en effet si le nombre de chiffres est le même, mais pas le nombre de caractères, ce que vous voulez. Les «chiffres» sont des chiffres, de 1 à 0. Les «caractères» sont des symboles faisant partie d'une chaîne - lettres, chiffres numériques, ponctuation, etc. –

Questions connexes