Я хотел бы указать разделитель для сканера, который разбивается на какой-либо шаблон, но не удаляет этот шаблон из токенов. Я не могу сделать эту работу, поскольку все, что идентифицируется регулярным выражением, также съедается как часть разделителя. Какие-либо предложения?Использование разделителя Java-сканера
Моя конкретная проблема, у меня есть файл, который выглядит следующим образом:
text/numbers mix
numbers
numbers
text/numbers mix
numbers
numbers
numbers
.
.
Я хотел бы, чтобы расколоть из текста/чисел смеси + строк до следующего текста/смеси чисел. У меня есть регулярное выражение, чтобы идентифицировать их, но, как указано, используя это, поскольку разделитель ест часть того, что я хочу.
EDIT: код добавления:
static final String labelRegex="\\s*[^01\\s*]\\w+\\s*";
static final Pattern labelPattern = Pattern.compile(labelRegex, Pattern.MULTILINE);
это образец, который я использовал, чтобы определить бит текста/номера (я знаю, что мои номера строк содержат все 1/0s, разделенных пробелами).
Когда я инициализация сканера:
stateScan = new Scanner(new BufferedReader(new FileReader(source)));
stateScan.useDelimiter(labelPattern);
, который ест этикетки, и просто оставляет строку. В настоящее время у меня есть рабочая реализация, которая запускает два сканера на двух буферизованных считывателях файлов из одного источника, одно разделение по состояниям, а другое - на метки. Мне бы очень хотелось, чтобы это было просто одно захватывающее ярлык + состояние.
Вы можете разместить код, который вы пробовали до сих пор? – akf