Я хочу, чтобы разделить строку String line = "20E WED 01PM 0E";
так, что у меня есть переменный для каждой «части», где части будет выглядеть примерно так:Как разбить эту строку (Java)?
int fDegree = 20;
String fDegreeEW = "E";
String day = "WED";
int time = 01; \\ '1' is fine too
String amPm = "PM";
int sDegree = 0;
String sDegreeEW = "E";
Я думал о первом расщепления строки, line
в пространствах, а затем делать regex
на каждой части, чтобы получить данные, но я не мог заставить это работать. Какой был бы самый лучший способ разделить String как на кучу разных переменных? Примечание. Это не единственная строка, которую я хочу проверить. Например, первый «20» также может быть «1» или «165», поэтому слова и цифры необязательно имеют заданную длину. Но образ числа, слова, пространства, слова, пространства, числа, слова, пространства, числа, слова всегда будет правдой.
Edit: Я пробовал:
String line = "20E WED 01PM 0E";
String[] splitArray = line.split(" ");
Scanner scanner = new Scanner(splitArray[0]);
int fDegree = scanner.nextInt();
но бросил InputMismatchException
. Могу ли я использовать сканер здесь или нет?
Сплит с использованием разделителя пространства в первую очередь. Затем используйте регулярное выражение для разделения каждой подстроки на число и буквы. Не используйте сканер, попробуйте следующее: http://stackoverflow.com/questions/8270784/how-to-split-a-string-between-letters-and-digits-or-between-digits-and-letters Никто не напишет вам код. Если у вас есть код, который не работает, вы можете опубликовать его здесь, чтобы люди могли указать, почему он не работает. – rgamber
@rgamber Почему 'split()' (который использует регулярное выражение), а затем regex каждую часть, когда одно регулярное выражение может выполнять всю работу? – Andreas
Согласен! мой комментарий был поспешно написан! Я не могу отредактировать свой комментарий, кажется, слишком поздно. Спасибо за исправление! – rgamber