String.split
не даст вам желаемого результата, который, я думаю, будет "810", "LN", "15", так как он должен будет искать токен, на который нужно разделиться, и лишить его.
Попробуйте вместо этого Pattern
и Matcher
, используя это регулярное выражение: (\d+)|([a-zA-Z]+)
, которое будет соответствовать любой последовательности цифр и букв и получит различные группы цифр / текста (т. Е. "AA810LN15QQ12345" приведет к группам«AA», «810», «LN», «15», «QQ» и «12345»).
Пример:
Pattern p = Pattern.compile("(\\d+)|([a-zA-Z]+)");
Matcher m = p.matcher("810LN15");
List<String> tokens = new LinkedList<String>();
while(m.find())
{
String token = m.group( 1 ); //group 0 is always the entire match
tokens.add(token);
}
//now iterate through 'tokens' and check whether you have a number or text