Java строка разделена без пробела - PullRequest
2 голосов
/ 10 мая 2011

Я пытаюсь разделить некоторый пользовательский ввод.Вход имеет вид a1 b2 c3 d4.Для каждого ввода (например, a1), как я могу разделить его на 'a' и '1'?

Я знаком с функцией разделения строк, но что я должен указать в качестве разделителя или этодаже возможно?

Спасибо.

Ответы [ 7 ]

2 голосов
/ 10 мая 2011

Если вы хотите разделить строку в общем (вместо того, чтобы пытаться подсчитать символы для других ответов), вы все равно можете использовать String.split (), но вы должны использовать регулярные выражения .(Примечание. Этот ответ будет работать, если у вас есть строки, такие как a1, a2, aaa333 и т. Д.)иметь числовые части.(Примечание: на самом деле я не компилировал это, чтобы проверить, что оно будет работать, но оно должно дать вам основную идею.)

2 голосов
/ 10 мая 2011

это действительно зависит от того, как вы собираетесь использовать данные впоследствии, но кроме split("") или доступа к отдельным символам по индексу, еще один способ разделения на отдельные символы - это toCharArray() - который просто разбивает строку намассив символов ...

2 голосов
/ 10 мая 2011

Вы можете использовать String # substring ()

String a1 = "a1"
String firstLetterStr = a1.substring(0,1);
String secondLetterStr = a1.substirng(1,a1.length());

Аналогично,

String c31 = "c31"
String firstLetterStr = c31.substring(0,1);
String secondLetterStr = c31.substirng(1,c31.length());
1 голос
/ 10 мая 2011

После разделения пользовательского ввода на отдельные токены, используя split(" "), вы можете разделить каждый токен на символы, используя split("") (используя пустую строку в качестве разделителя).

1 голос
/ 10 мая 2011

Да, это возможно, вы можете использовать split("");

0 голосов
/ 10 мая 2011

Я бы порекомендовал просто перебирать символы в тройках.

for(int i = 0; i < str.length(); i += 3) {
     char theLetter = str.charAt(i);
     char theNumber = str.charAt(i + 1);
     // Do something
}

Редактировать: если это может быть несколько букв или цифр, используйте регулярные выражения:

([a-z]+)(\d+)

Информация: http://www.regular -expressions.info / java.html

0 голосов
/ 10 мая 2011

Разделите пробел на массив строк, затем вытяните отдельные символы с помощью String.charAt(0) и String.charAt(1)

...