From 6ec0c80e6ccab56e66e612a71a4bdb376b2e9ee5 Mon Sep 17 00:00:00 2001
From: niklasBr <104077966+bretzNiklas@users.noreply.github.com>
Date: Fri, 23 Dec 2022 16:12:09 +0100
Subject: [PATCH] =?UTF-8?q?Eigene=20Klasse=20f=C3=BCr=20Tokenerstellung=20?=
 =?UTF-8?q?gemacht=20und=20Code=20von=20main=20in=20die=20neue=20Klasse=20?=
 =?UTF-8?q?verschoben?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Aufgabe4/Main.java                 |  26 +++++
 Aufgabe4/Tokenizer.java            |  99 +++++++++++++++++++
 Aufgabe4/main.java                 | 154 -----------------------------
 out/production/inf3_git/main.class | Bin 3297 -> 2089 bytes
 4 files changed, 125 insertions(+), 154 deletions(-)
 create mode 100644 Aufgabe4/Main.java
 create mode 100644 Aufgabe4/Tokenizer.java
 delete mode 100644 Aufgabe4/main.java

diff --git a/Aufgabe4/Main.java b/Aufgabe4/Main.java
new file mode 100644
index 0000000..4fa6318
--- /dev/null
+++ b/Aufgabe4/Main.java
@@ -0,0 +1,26 @@
+
+
+public class Main {
+    public static void main(String[] args){
+
+        // 23, x, +, (,0, 5, x,), ^, 2, -, 1
+        String ausdruck = "230lkjhx  +(2  5x) ^2,jhff  3−1gf ";
+        String ausdruck2 = "0x  +(2 5x) ^2−1f ";
+
+        Tokenizer t = new Tokenizer();
+
+        t.tokenizeString(ausdruck).forEach(t1 -> {
+            System.out.print(t1.getTokenString() + " ");
+            System.out.println(t1.getTokenType());
+        });
+
+
+        t.tokenizeString(ausdruck2).forEach(t1 -> {
+            System.out.print(t1.getTokenString() + " ");
+            System.out.println(t1.getTokenType());
+        });
+
+
+    }
+}
+
diff --git a/Aufgabe4/Tokenizer.java b/Aufgabe4/Tokenizer.java
new file mode 100644
index 0000000..574433d
--- /dev/null
+++ b/Aufgabe4/Tokenizer.java
@@ -0,0 +1,99 @@
+import java.util.ArrayList;
+import java.util.Objects;
+
+public class Tokenizer {
+
+
+
+
+
+
+    public ArrayList<Token> tokenizeString(String s) {
+
+
+        return constructTokenList( buildSubstringsFromSeparatedChars( separateChars(s) ) );
+
+
+    }
+
+    private ArrayList<String> separateChars(String stringToTokenize) {
+
+        ArrayList<String> separated = new ArrayList<>();
+
+        separated.add("|");
+
+        for (char c : stringToTokenize.toCharArray()) {
+
+            if(Character.isWhitespace(c)){
+                continue;
+            }
+
+            if(Character.isDigit(c)) {
+                separated.add( String.valueOf(c) );
+            } else {
+                separated.add("|");
+                separated.add( String.valueOf(c) );
+                separated.add("|");
+            }
+        }
+
+        separated.add("|");
+
+        return separated;
+    }
+
+    private ArrayList<String> buildSubstringsFromSeparatedChars(ArrayList<String> separated) {
+
+        ArrayList<String> tokensAsStrings = new ArrayList<>();
+
+        StringBuilder temp = new StringBuilder();
+
+        for(String c : separated) {
+            if(Objects.equals(c, "|")) {
+
+                if(!temp.toString().equals("")) {
+                    tokensAsStrings.add(temp.toString());
+                }
+
+                temp = new StringBuilder();
+
+            } else {
+                temp.append(c);
+            }
+        }
+
+        return tokensAsStrings;
+
+    }
+
+    private ArrayList<Token> constructTokenList(ArrayList<String> tokensAsStrings) {
+
+        ArrayList<Token> tokens = new ArrayList<>();
+
+        boolean notANumber = false;
+
+        for(String s1 : tokensAsStrings) {
+
+            try {
+                Integer.parseInt(s1);
+                tokens.add(new Token(TokenType.number, s1));
+            } catch (NumberFormatException ignored) {
+
+                notANumber = true;
+
+            }
+
+            if(notANumber) {
+
+                if (Character.isLetter( s1.charAt(0) )) {
+                    tokens.add(new Token(TokenType.var, s1));
+                } else {
+                    tokens.add(new Token(TokenType.special, s1));
+                }
+                notANumber = false;
+            }
+        }
+
+        return tokens;
+    }
+}
diff --git a/Aufgabe4/main.java b/Aufgabe4/main.java
deleted file mode 100644
index c42fee5..0000000
--- a/Aufgabe4/main.java
+++ /dev/null
@@ -1,154 +0,0 @@
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-public class main {
-    public static void main(String[] args){
-
-        // 23, x, +, (,0, 5, x,), ^, 2, -, 1
-        String ausdruck = "23x +(0,5x)^20−10";
-
-        ArrayList<String> separatedChar = new ArrayList<String>();
-
-        List<Token> tokenList = new ArrayList<>();
-
-        separatedChar.add("|");
-        for (char c : ausdruck.toCharArray()) {
-
-            if(Character.isWhitespace(c)){
-                continue;
-            }
-
-            if(Character.isDigit(c)) {
-
-                separatedChar.add( String.valueOf(c) );
-
-            } else {
-                separatedChar.add("|");
-                separatedChar.add( String.valueOf(c) );
-                separatedChar.add("|");
-            }
-        }
-        separatedChar.add("|");
-
-        System.out.println(separatedChar);
-
-        ArrayList<String> tokens = new ArrayList<String>();
-        String temp = "";
-
-
-        for(String c : separatedChar) {
-
-            if(Objects.equals(c, "|")) {
-
-                if(temp != "") {
-                    tokens.add(temp);
-                }
-                temp = "";
-            } else {
-                temp = temp + c;
-            }
-        }
-
-        System.out.println(tokens);
-
-        Boolean notANumber = false;
-
-        for(String s : tokens) {
-
-            try {
-                int val = Integer.parseInt(s);
-                tokenList.add(new Token(TokenType.number, s));
-            } catch (NumberFormatException ignored) {
-
-                notANumber = true;
-
-            }
-
-            if(notANumber) {
-
-                if (Character.isLetter( s.charAt(0) )) {
-                    tokenList.add(new Token(TokenType.var, s));
-                } else {
-                    tokenList.add(new Token(TokenType.special, s));
-                }
-                notANumber = false;
-            }
-
-        }
-
-        for(Token t : tokenList) {
-            System.out.println(t.getTokenString() + " " + t.getTokenType());
-        }
-
-
-
-        /*
-
-        for(int i = 0; i < ausdruck.length(); i++) {
-
-            if(Character.isWhitespace(ausdruck.charAt(i))) {
-                continue;
-            }
-
-
-            if(typeOfLast == TokenType.number && Character.isDigit(ausdruck.charAt(i)) && i != 0) {
-
-                temp = temp + ausdruck.charAt(i-1);
-                //charList.add(String.valueOf( ausdruck.charAt(i) ));
-
-            } else {
-
-                if(temp.equals("")) {
-
-                    charList.add(String.valueOf( "|" + ausdruck.charAt(i) + "|"));
-
-                } else {
-
-                    charList.add(String.valueOf( "|" + temp +  "|"));
-                    charList.add(String.valueOf( "|" + ausdruck.charAt(i) + "|"));
-
-                    temp = "";
-                }
-            }
-
-
-            if(Character.isDigit(ausdruck.charAt(i)))
-                typeOfLast = TokenType.number;
-            else if(Character.isLetter(ausdruck.charAt(i)))
-                typeOfLast = TokenType.var;
-            else
-                typeOfLast = TokenType.special;
-
-        }
-
-        System.out.println(charList);
-
-
-        /*
-        for (char c : ausdruck.toCharArray()) {
-
-            if(Character.isWhitespace(c)) {
-                continue;
-            }
-
-
-            if(typeOfLast == TokenType.number && Character.isDigit(c)) {
-                System.out.print(c);
-            } else {
-                System.out.println();
-                System.out.print(c);
-            }
-
-            if(Character.isDigit(c))
-                typeOfLast = TokenType.number;
-            else if(Character.isLetter(c))
-                typeOfLast = TokenType.var;
-            else
-                typeOfLast = TokenType.special;
-        }
-        */
-
-    }
-}
-
diff --git a/out/production/inf3_git/main.class b/out/production/inf3_git/main.class
index fb751939f861254dfc6a1b06665080572101799a..386650f1dab3e03d3dce9cf08e58cea64d1e5f43 100644
GIT binary patch
literal 2089
zcmcIlTXWk)6#mwBB3n^n*SVCWr4_9k?A)9S<x+=2YZ_Xrq=f{RQYfrt*;Xt|8EM^V
zcxQ%Zp7<N^kj{h|egMO-;D<1rm1N@7frrizPozDU{m%K$o;~{gujAhURN$#dAgLgw
zVFaTLxqbeOmmTi5$`9)MmMIuUH*MDzHyM(}QZ0=%Lt%Ym)#>cFpX>T!ab4H1KQHM|
z*O&I&&8Dtz{Q1L=Yptf9hRQIt8v8^p($v%yXbhP>uVcCPcb2bW3`zOOYRKUn!-R-U
zyTZ5K7DK6MoTL>gE2T))6Sh;n<@@~5ume%a6RAlJQ<$c_xoKJlMBs99(7D-jO<{X(
zx$3z=uWR`g73cAqf>{l7xWF(O#ySnmpfo-I4maBjdYnz@F^pEK<v}1BT*74qx`sD!
z<y2jF4+CL!shnPqlADfr*k1V|krl+w;$2FqfNKioHN1%;!$?>xs!Yog;j&+usXn#v
z#NyKA=|~qeEMke_e3y4DVrp{n$QEtMS#Vbb4D<h9)Il&6D<~^i)v$*3esNA`OZgqh
z+=<Ltm^De}Ee+T4HiOn@uy=T1F^p6GAt5Oe>lM7K;XT}-dWVpX`x0o>l$BCV!6rkh
z%Wd*VRlNp*WewZ4c6!~q<?r#jLz=wdncS&y-<EQ$Oo_Hl{6`JBxxz40d~!y6)d-gR
zEpnVZ!_1K8y`bUu%#MsQ)ScAdeLEG6QEA2^p0eR7=D5SV^#(7<6bfq$YB4esF@}U7
zjS?$f@?9n0U9abx)|M?9W+cLjj88pw+w(*qe15QPiMH1WvZL5lv4_tU)HFQ87YtWU
zQnlS@bkE90m<jFRO>PR$Kcrl{gVG;^hZ=8+0^H?p!?A*b;d!0jL1nlM1DaDC!_$5x
zV-#{Q)G%;-+ruu7tyS(gySA_@IozPCJW*-%eWhUs_j9;Uif^RiTMeItQeB0Kh5}1o
zq9)C|p`t}MExK1*{j&Y^{}(F0;e#F7zY)Xb{D*WJG`12<r|WmmbuGW@@F1`P1=PIP
zhPa(|whCxqUHWfVd8NWepov$Z5hVXoGz#gvLeKX}D$|?Mdt~7S*w3^`;3hq#nUwf|
zo?5*A5VuImU=z1VBR79f-YI&Q@`{nqZ2yX}$1gCxv%GkOiDS^<Kf=uNQYc&ug_8ht
z6heX}q0&mj1pO}1N1{jrUj|)>fKkOqBqcGAJJ_PIqqvHXX_W~5@8TYkIaT&ZoRUEn
znflx>czxjrSC3JWk(VQJ;|TAZ<S;?Fz%;U$!7P1nPRP!|z&1e0)Q+!=oF(KOA)gyY
prpON{b^;IaDZMX}{2Bc}#+UdyUOlB1r`Rpn<e}1P9}Zm1{tX$k4nF_@

literal 3297
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

-- 
GitLab