Hallo,
ich soll einen Tokenizer implementieren ohne ein Scanner Generatortool zu nutzen. Dabei hab ich die Methode vorgegeben:
Anschaulich an einem Testcase:
Kommen illegale Zeichen wie = statt <= vor so muss ILLEGAL in der results Liste nur drinstehen.
Ich will keine Lösung. Jedoch hab ich gerade nicht wirklich eine Idee, wie ich es umsetzen soll. Ich dachte zuerst an die split() Methode, aber die entfernt ja alle Übereinstimmungen aus dem String und das ist ja genau das Umgekehrte was ich machen will.
Freue mich über Ansätze
ich soll einen Tokenizer implementieren ohne ein Scanner Generatortool zu nutzen. Dabei hab ich die Methode vorgegeben:
Java:
package scanner;
import java.util.*;
public class TokenScanner {
public static List<String> functionScanner(String input) {
List<String> results = new ArrayList<>();
return results;
}
Anschaulich an einem Testcase:
Java:
package scanner;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;
import java.util.List;
import org.junit.jupiter.api.Test;
class TokenScannerTest1 {
@Test
void test1() {
List<String> list1 = Arrays.asList("if", "(","x", ">", "0", ")","{", "y",
"<=", "7",";", "}");
//TokenScanner test1 = new TokenScanner();
List<String> results1 = TokenScanner.functionScanner("if (x >0){\ny<= 7;\n}");
assertEquals(list1, results1);
}
}
Kommen illegale Zeichen wie = statt <= vor so muss ILLEGAL in der results Liste nur drinstehen.
Ich will keine Lösung. Jedoch hab ich gerade nicht wirklich eine Idee, wie ich es umsetzen soll. Ich dachte zuerst an die split() Methode, aber die entfernt ja alle Übereinstimmungen aus dem String und das ist ja genau das Umgekehrte was ich machen will.
Freue mich über Ansätze