2017-08-20 5 views
-2

En fait, je suis passé par docuements de recherche et j'ai obtenu un match de la situation chaîne binaire avec une autre taille de la chaîne binaire est uknown ex:correspondant à différentes chaînes de taille

"1110000010001001101011010100010000101101001001010010000101000011"== 
"1011010111010111111111010101100000000000101111101100011010011011" 

Je veux résultat TRUE si une chaîne correspond à la plus importante bits d'une autre chaîne

+1

Votre question est un peu floue. S'il vous plaît fournir plus d'exemples. Combien de MSB voulez-vous comparer? –

+0

Votre exemple est-il censé être vrai ou faux? les deux chaînes de bits ont le premier bit en commun. Est-ce assez important? – Pac0

+0

Si vous les avez en tant que chaîne, regardez dans [String.startsWith] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#startsWith). De même, ne comparez pas les chaînes en utilisant l'opérateur '==' dans Java. – Mitja

Répondre

0

Pour comparer un MSB, il suffit de comparer le premier caractère comme ci-dessous:

boolean result = number1.charAt(0) == number2.charAt(0); 

Pour plusieurs MSB, utilisez le code suivant:

int noOfMSBs = 8; 
boolean result = number1.substring(0, noOfMSBs - 1).equals(number2.substring(0, noOfMSBs - 1)); 

Pour comparer si le nombre entier est présente comme MSB dans une autre chaîne:

boolean result = number2.startsWith(number1); 
0

ÉDITÉE après commentaire sur la question:

Pour tester si une chaîne commence avec un autre, il suffit d'utiliser startsWith:

boolean result = str2.startsWith(str1); 
// results if true if str2 starts with full str1 string. 

ORIGINAL

Je pense que vous devriez pouvez réduire vos chaînes et comparer la première partie.

String str1, str2; 
int numSignificantBits = xxx; 
significantPart1 = str1.subString(0, numSignificantBits); 
significantPart2 = str2.subString(0, numSignificantBits); 
if (significantPart1.equals(significantPart2)) 
{ 
    // ok 
} 

Bien sûr, vous devez ajouter une vérification correcte pour les valeurs nulles ou trop courtes.

Et aussi, ne pas comparer les chaînes wiht == en java! Utilisez la fonction String.equals.