2012-02-11 2 views
-4

Quelqu'un peut-il expliquer à travers un exemple de code comment diviser une chaîne? Et ci-dessous, je collais la chaînecomment diviser une chaîne continue?

String str="000F33353238343830323038353239323300000133B5150A8C002E3C188007C4D950039300A1090000F0080301000200F001030900010A000018000002480000013DC70000000000"; 

chaîne Vu 34 premiers bits sont IMEI et l'estampille 8 bits et ainsi de suite.

+0

vous voulez dire octets? utilisez substring() avec les paramètres appropriés. –

+5

* "Explication via l'exemple de code" * SO n'est pas une fabrique de code. –

+0

Jetez un oeil à [ici] (http://stackoverflow.com/questions/247161/how-do-i-turn-a-string-into-a-stream-in-java), pourrait vous aider. –

Répondre

3

Utilisez String.substring(int,int).

Renvoie une nouvelle chaîne qui est une sous-chaîne de cette chaîne. La sous-chaîne commence au beginIndex spécifié et étend le caractère à l'index endIndex - 1.

Notez les pièces Retours, ce qui signifie qu'il ne modifie pas la String d'origine.

+0

+1 pour 'cela ne modifie pas la chaîne originale'. – RanRag

+0

mais ma question est dans votre code seul numéro IMEI seulement affiché .. et qu'en est-il des autres et comment puis-je séparer la chaîne remaniant – Manjula

+0

Vous semblez avoir copié/collé ce commentaire de votre réponse à Jörg Beyer. Mais la réponse est la même pour l'un ou l'autre. Utilisez la méthode plusieurs fois, avec différentes plages de 'int'. –

3

vous pouvez utiliser la méthode String sousChaîne

substring(int beginIndex, int endIndex) 

beginIndex est inclus tout endIndex est exclusive. subString renvoie une copie d'une partie de la chaîne origrianl retour. si:

String part = original.substring(beginIndex, endIndex); 

ou:

String part = "abcdefgh".substring(2,4) // part will be "cd" 

dans votre cas:

String imei = str.substring(0, 34); 
String timestamp = str.substring(34,34+8); 
... do that for any part you want to extract. 

vous Asuming octets où vous écriviez ment les bits.

pour avoir un aperçu plus que vous pouvez lire la documentation sur Java Strings, http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html

+0

mais ma question est dans votre code seul numéro IMEI seulement affiché .. et que diriez-vous d'autres et comment je peux séparer la chaîne remaniant – Manjula

+0

@Manjula ajouter des appels subséquents de la fonction 'substring' pour les autres données, comme' string timestamp = str.substring (34,42); ' – Matten

+0

j'ai essayé mais son erreur obtenant comme exception dans le fil" principal "java.lang.StringIndexOutOfBoundsException: l'index de chaîne hors de portée: 42 – Manjula