Comment découper une chaîne de caractères dans une chaîne de longueur fixe tableau?
J'ai une longue chaîne comme celle-ci
dim LongString as String = "123abc456def789ghi"
Et je tiens à le diviser en un tableau de chaînes. Chaque élément du tableau doit être dans les 3 caractères de longueur
Par exemple,
Dim LongArray(5) As String
LongArray(0) = "123"
LongArray(1) = "abc"
LongArray(2) = "456"
LongArray(3) = "def"
LongArray(4) = "789"
LongArray(5) = "ghi"
Comment puis-je diviser à l'aide de VB.net code?
Ce qui devrait se produire si la longueur de la chaîne n'est pas un multiple de 3?
Voir msdn.microsoft.com/en-us/library/6x627e5f(v=vs. 80).aspx
Skeet: C'est toujours un multiple de 3
Je l'ai essayé. Mais qu'est-ce que le
Double Possible de stackoverflow.com/questions/1450774/...
Voir msdn.microsoft.com/en-us/library/6x627e5f(v=vs. 80).aspx
Skeet: C'est toujours un multiple de 3
Je l'ai essayé. Mais qu'est-ce que le
delimiter
de la valeur pour mon cas?Double Possible de stackoverflow.com/questions/1450774/...
OriginalL'auteur Yoga Fire | 2011-09-11
Vous devez vous connecter pour publier un commentaire.
Cela pourrait fonctionner.
Et cela devrait fonctionner .Net 1.1
OriginalL'auteur chrissie1
Vous pouvez utiliser LINQ comme suit:
Remarque cela ne prend que complète occurrences de la longueur (c'est à dire 3 ensembles dans une chaîne de 10 caractères).
Peut-être vous devriez avoir écrit vous étiez encore à l'aide d'instruments anciens!
dans sa défense, il a un .net1.1 tag à la question.
Seulement depuis xanatos ajouté.
OriginalL'auteur Aaron
Ce C# code devrait fonctionner:
Réflecteur qui convertit VB:
Il est possible que ce n'est pas idiomatique VB, c'est pourquoi j'ai inclus le C#.
Pourquoi est-réflecteur convertin division entière de non-entier (VB.NET) divisions? Ne devrait-elle pas convertir
\
à/
? Il ne sait pas la prereq que le nombre est toujours divisible par 3.Peut - être- je ne suis pas un VB personne... modifier.
Dit par l'un des quatre personnes avec l'insigne d'or de VB.NET 🙂 C'était plus une question de "est-ce un bug du réflecteur ou quoi"
OriginalL'auteur Jon Skeet
Je suis le fractionnement de la chaîne de 35.
OriginalL'auteur vangli
Il y a quelques pièces intéressantes, l'utilisation de la
\
division entière (c'est toujours arrondi vers le bas), le fait que, dans VB.NET vous avez à dire pour varier l'intensité maximale de l'élément du tableau (donc la longueur de la matrice est de +1) (c'est drôle que pour C#, programmeurs) (et il est résolu par le -1 dans la pénombre), le "+ 2" plus (j'ai besoin d'arrondir le montant de la division par 3, donc j'ai simplement ajouter 2 au dividende, J'aurais pu utiliser un opérateur ternaire et le module, et dans le premier test que j'ai fait), et l'utilisation de l'opérateur ternaire SI() dans l'obtention de la sous-chaîne.OriginalL'auteur xanatos
Dernier tableau est manquant:
OriginalL'auteur Kan
J'ai ajouté un peu plus de logique à @jon code. Cela fonctionne parfaitement pour la chaîne qui a une longueur inférieure à la longueur de passé.
OriginalL'auteur Amir