Немного засыпки в том, что я пытаюсь сделать.
Я хочу проанализировать строку, но для возможности сравнения, например
- 1 символ в позиции x
- 2 символа в позиции x
- ...
- n символов в позиции x
если это не так
- 1 символ в позиции x + 1
- 2 символа в позиции x + 1
- ...
- n символов в позиции x + 1
и т.д.
продолжается, пока я не получу совпадение, или EOS.
Это легко сделать с массивом, но я хочу сделать это в методе и вернуть буфер с индексом, указывающим на следующее место для начала обработки. Меня убедили, что CharBuffer - хорошее решение для этого, но я не уверен.
РЕДАКТИРОВАТЬ в качестве примера - не совсем компилируемый код!
Main
List template1 = new List();
List template2 = new List();
String exampleInput = "oneone two";
template1.add ( "one" );
template1.add ( "two" );
template1.add ( "three" );
template2.add ( "one" );
template2.add ( "one" );
template2.add ( "two" );
Set templates = new Set();
templates.add ( template1 );
templates.add ( template2 );
NoisyParser np = new NoisyParser();
np.parse( templates, exampleInput );
NoisyParser
void parse( Set templates, Sting inp ){
iterate over each template that matches inp{
find_match( template, inp );
}
}
boolean find_match( template, inp ) {
This is where I need the magic to work out if the current element
in template matches the current position of inp, or inp+1, give or take.
}