Android textutils.Split, um eine festgelegte Längenzeichenfolge zu liefern []
Frage
Ich kann keine Saite in fixen Langstrümpfe aufnehmen und zu einer Arraylist hinzugefügt ... Der Code unten ist wie erwartet, aber alle Messagetosplit [] bis zum letzten sind null.Der letzte hat tatsächlich einen Wert darin.
im Beispiel unten, wenn der Edit-Text zurückgegeben wird, "01234567890" dann "", "," und "890". generasacodicetagpre.
Lösung
In a split
operation, the regex pattern is the separator. For example, if the regex pattern were ;
, then 12;34;56
would be split into 12
, 34
, and 56
.
So in your case 01234567890
is split into ""
(the string before 0123
), ""
(the string between 0123
and 4567
) and 890
(the remainder of the string after 4567
).
You probably don't want to use split
but rather something like this:
Pattern p = Pattern.compile(".{1,4}");
Matcher regexMatcher = p.matcher(messageToSplit);
while (regexMatcher.find()) {
myText.add(regexMatcher.group());
}
.{1,4}
will match 4 characters if it can, but make do with 1-3 if four are no longer available (which might happen at the end of the string if its length is not a multiple of 4).