From d1eee4475ddded8c1182f3ad04fbc1bee22aa465 Mon Sep 17 00:00:00 2001 From: juhlgren Date: Thu, 27 Sep 2018 16:20:03 +0300 Subject: [PATCH 1/2] joopa joo --- bin/StringCalculator.class | Bin 405 -> 2099 bytes bin/StringCalculatorTest.class | Bin 505 -> 1807 bytes src/StringCalculator.java | 66 +++++++++++++++++++++++++++++++- tests/StringCalculatorTest.java | 50 ++++++++++++++++++++++++ 4 files changed, 114 insertions(+), 2 deletions(-) diff --git a/bin/StringCalculator.class b/bin/StringCalculator.class index a937b0c43633d36f133837cd90ddd10fb14ac782..d7dfd541d0801b3040884220a74137b7b57b6248 100644 GIT binary patch literal 2099 zcmZ`)U2has7=F&q?9N9ATMAR;O9m^jAEi}3R-t?dThY~ipsf`UwbR{UJFq*m*_{O| zwcv7ddgYZ~8BI(~Of>upW5nmoY)gUK?96%3Iq!Mi=Y8IHPJjIO zo9_V}!etF9fq~hmws4c+;K6qSu;p7wewD;AB{F>+^2Qm-F7D8ZG&4x%Y6~aU#3b zs(_uHydORB8qbwYY{VuFgAZ^^b}ej%O@fsrw{?n4)oeLeG9j?V!sFN~kgAmAYAIJX zupK)!?067mxgB{83r}DdIfNZT*a-zc96L*OBF6FD#<-5%0+n*m>_m6%2)S-TC^0`mud@)S$G=H2q3ny@rIk?TH7qEx+uLWD_ zp+{);_>4=4Qx;BxZK6kE;xDi{yKa1e7c87XzwE1N0kc9d5?u=g z(s4U5@7^h9Q0AU@#bt*^p&T+-!g|ByHZwvqk>T+(hLdm}CEw0aYo zZ5A~4qP$bWk8i+n+`wJt`d@&#K{7i^vOG;Lj7kRF^JRT=18 z95_F62ZwIsxxu4d9NW()Hnys?x_F+j`H?OrikUq3CW=~K?o1SQ+xQrkov}4yFWgdY zF-;|w<`TBjHsV=^0vVJ*O4Cna1~I^!a1ahQA-<%cZ#Ed-!Vf=Bi3&?OG_u?U-2p}gN%R1YqU&qI)hovG5YI_cM|$N zQt#6sG)W2Q(7#J8#7(^y=t)1-0tTH)^MURnb@=O*_Ck8VHMg}IJEEDq@5Xry= kB-wys3=HfH+(1$cBFn(TzzgJoR0uE#0_7PQgupyu0HK}>xc~qF diff --git a/bin/StringCalculatorTest.class b/bin/StringCalculatorTest.class index d44b83f48579a95c814a0008fdfcca590443d2de..650de2215d1ec2a4c8e7804ac02e6610e3afb2f3 100644 GIT binary patch literal 1807 zcmc&zT~`}b6x}x;%n+u94ulEt+OE`ob62&rfr!A^p?oeguJjHvPxcR0MGFi)a6Cu9B@j+5> zEb7YEQFkntnNoH%ki9&NJ4hI~`_cl+$1Sbu78bBb>VBKkiT9X0e`sM$}+dcj0W zz|7`Txs_Bd7eg9v7|2jfSLVyf7P43tFd9L<>ydn7D_Cnh;IYX|@cnJ+9ryOxGLaJ) z$=>gEPOYvASV7{p(lx(YDVoR=IVV3$dD+}i3~P8`fT}K>QBSjlb?}6SDmB^MppXEy z7_8K+0s?sfv$DWbBk_Mwc0Kb z1RX(Z|8d#;!x6Yr*0OT6EgSs(I87mlu#m8$cVxW{|ab*fulqpeMRNQhilu0X8p zx0@BU=>$hVb$PkFoKrg30B(Zp`22t&e(}-p*Pxf76|~XC7cjr&M+mWg5`!4wx7ACa zy+TjmDvLuH?PrbA28}*qEJPds5!XI>f$>t(p6FomV|)60%$zs25n)mcCR>lPRK3C2$&jP@d-(?~yu+kNs6H9!52 dnsd~=O6GYITchRzHRq{${eRT_j57ff$?3=9k=4AK+1&RTLX2r)7U`{kD?RHl|FWabv+q~@mPm87O{F^DjT zu``G=G6>`srR!&v=4F=XI~EtG7M1WYh%-n`j$u@s9L8+K$TYc=In3UKfe{E97}$ga qcQ6QV1hSYIxPT-VkY-@uWMBodxPdGlh$3*<2}NCHVF1}Ok#m>ZP< diff --git a/src/StringCalculator.java b/src/StringCalculator.java index 487916b..8030fc4 100644 --- a/src/StringCalculator.java +++ b/src/StringCalculator.java @@ -1,9 +1,71 @@ public class StringCalculator { - public int add(String numbersStr) { + + public int add(String numbersStr) + { + String one; + String two; + String three; + int numbers = 0; + int eka = 0; + int toka = 0; + int kolmas = 0; + int passed = 0; + int i = 0; + + for (i = 0; i < numbersStr.length(); i++) + { + char c = numbersStr.charAt(i); + passed = cC (c); // Send this character to rehab for evaluating if it is 0-9 or , or \n + if (passed == 0) System.out.println("Input includes invalid characters. Please give three numbers separated by a comma (,) or a new line"); + if (passed == 2 || passed == 4) + { + numbers++; + if (numbers == 1) toka = i; + if (numbers == 2) kolmas = i; + if (numbers > 2) System.out.println("Too many numbers in the input"); + } + + + } + one = separate(numbersStr,0,toka); + two = separate(numbersStr,toka+1,kolmas); + three = separate(numbersStr,kolmas+1,numbersStr.length()); + + System.out.println(one + " " + two + " " + three); + + eka = cN(one); + toka = cN(two); + kolmas = cN(three); + + if (passed > 0) return eka+toka+kolmas; + // Returns the sum of the numbers given in numbersStr // not yet implemented - return 0; + else return 0; + } + + public int cN (String a) // cN = CheckNumber wtf was I planning to with this? + { + return Integer.parseInt(a); } + + // this checks only if a character is a digit or one of the three other allowed figures + public int cC (char a) + { + if (Character.isDigit(a)) return 1; + if (a == ',') return 2; + if (a == '\\') return 3; + if (a == 'n') return 4; + return 0; + + } + + public String separate (String a, int x, int y) // + { + return a.substring(x, y); + } + } + diff --git a/tests/StringCalculatorTest.java b/tests/StringCalculatorTest.java index 4ec9afe..6eb02c9 100644 --- a/tests/StringCalculatorTest.java +++ b/tests/StringCalculatorTest.java @@ -6,7 +6,57 @@ public class StringCalculatorTest { @Test public void test() { + + StringCalculator laske = new StringCalculator(); + laske.add("vmp"); fail("Not yet implemented"); } + + @Test + public void test2() + { + + StringCalculator laske = new StringCalculator(); + System.out.println(laske.add("18,54,55")); + fail("Not yet implemented"); + } + + @Test + public void testForTooManyNumbers() + { + + StringCalculator laske = new StringCalculator(); + System.out.println(laske.add("19,54,55,77")); + fail("Not yet implemented"); + } + + + @Test + public void testMethodcC () //tests if a character is valid. should fail with character a that is inserted into the string + { + StringCalculator laske = new StringCalculator(); + int result; + String t="5a\\,n15k"; + for (int i=0; i Date: Mon, 1 Oct 2018 19:27:34 +0300 Subject: [PATCH 2/2] Assignment 1 done --- bin/StringCalculator.class | Bin 2099 -> 2571 bytes bin/StringCalculatorTest.class | Bin 1807 -> 3526 bytes src/StringCalculator.java | 103 +++++++++++++++++++------------- tests/StringCalculatorTest.java | 100 ++++++++++++++++++++++++++----- 4 files changed, 148 insertions(+), 55 deletions(-) diff --git a/bin/StringCalculator.class b/bin/StringCalculator.class index d7dfd541d0801b3040884220a74137b7b57b6248..07efce05fb898a6ad9e8863fd65eadab27e7988d 100644 GIT binary patch literal 2571 zcmZ`*-*XdH6#i~Dn@!TiLfS1cV>a(%muUGG2NN|@!Xu1_XHw`Y}fXN1eC7sNr7;t zSg_(y5YwR|BG5c)yVj}de9kJLF>{V3kQgoIO=r?9+w#4B81`oEiv0F`+(9Cng@S<5 zHM$x-uo~>nMzKjCbkU8XML?wDFtAxe+nQ7ZV;x)2E)XwUCCAKL!;T}czX4{0DC>{n z5ZJ1t1Dyi;wCxtIxPFN&p{)UC_f(dV>n2P`7P_t&fu_L13wR1iCt>rKYou&dst)l#k^ayNP#m%~&HDi@^q|hu7Et%zt#WMn$(ka7kb!ED< zalD3o8ukjbtomkV&9a&Ir1t<`7trj=QG3Rwv-G(@47x`v7C}vqP3>w>bvE0*zDn7l zgE|IrNFY|J<|@9ub5YaC7pQe62 za&4LOgBnHzHm_C}DB?)fb_!NGiW8(hII@#PHyOt@_$q}DJ{lyoWeLeW0p#m zOM&ibK*4$f>Olu3#5+3P#RPfuia~gR)~@v~v^|S+8aQ4-ht^i7<2{+FR+0rfu9W5l z9aFeSf}a9Ym%AIKH`Ta7mvvmhRo0fL42J!tXS*{JIj5r!{j!M#9Tui(<5=#DH|t*j z)RMrgj@@XEVs1sy$*H+ZKC6!8Y+j(FtARA0G809SLzOfuNyqZ2z)CWT_bKe8=@#Uv znGD8+$1H1L#Ig#>S)SYOg6Y_Wq|DiuE=}o?H(j^rC36;c!DVK#S*lZAka}rpzyP^i zndV5YY+kb%N3fho$*feQx5)FQAm^c?p(@$176Q6ouz;y%P z1YSThpVIjbAyuw>dJ`KHi5gnZ_4L;8;+Qg|q{GV45?(OEsm{Ku>F}Z=I#UmCFaK?X z@6bW?VYspk2c*A*67qntJ93xQ1w;_TERA%;?#&xA;-p0)v&PD&xwiLh7>) zGg^mf+IkG2QJ5dJ-j2>1 z4*c+3iYXtlCoow-)aofpQr{#AvO*0*J~5mLbOzv|4iYN6{P->o|BPej6UXl%%g&9~ zaJq&wvWe%%QV)kZe~BLqD`|BJdVAPVmGMPY7;5M3<$sj4rley^ILK9sQW#-Im79+xlFu8JjSke_}Y?7k`{{3mgUJ|g69UP!O(l|h_ z58)sV^LdOEo#gdDiD6vE5zO#?0Y`BYBlsG}@f%LycVzL1R)5g`PmKHYPX{Ef(Eqru z%MSbs4^`5?4G)MUb-5Ei;R9+lOcCDowW>1GH@MEP5n_Ii8{F{S4D{RE-Z1BH5eD1R$@CBhlxcMKAh5bbU literal 2099 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 COm%bs literal 1807 zcmc&zT~`}b6x}x;%n+u94ulEt+OE`ob62&rfr!A^p?oeguJjHvPxcR0MGFi)a6Cu9B@j+5> zEb7YEQFkntnNoH%ki9&NJ4hI~`_cl+$1Sbu78bBb>VBKkiT9X0e`sM$}+dcj0W zz|7`Txs_Bd7eg9v7|2jfSLVyf7P43tFd9L<>ydn7D_Cnh;IYX|@cnJ+9ryOxGLaJ) z$=>gEPOYvASV7{p(lx(YDVoR=IVV3$dD+}i3~P8`fT}K>QBSjlb?}6SDmB^MppXEy z7_8K+0s?sfv$DWbBk_Mwc0Kb z1RX(Z|8d#;!x6Yr*0OT6EgSs(I87mlu#m8$cVxW{|ab*fulqpeMRNQhilu0X8p zx0@BU=>$hVb$PkFoKrg30B(Zp`22t&e(}-p*Pxf76|~XC7cjr&M+mWg5`!4wx7ACa zy+TjmDvLuH?PrbA28}*qEJPds5!XI>f$>t(p6FomV|)60%$zs25n)mcCR>lPRK3C2$&jP@d-(?~yu+kNs6H9!52 dnsd~=O6GYITchRzHRq{${eRT_j57 2) System.out.println("Too many numbers in the input"); - } - - + result = result + numbertable[i]; } - one = separate(numbersStr,0,toka); - two = separate(numbersStr,toka+1,kolmas); - three = separate(numbersStr,kolmas+1,numbersStr.length()); - - System.out.println(one + " " + two + " " + three); + - eka = cN(one); - toka = cN(two); - kolmas = cN(three); - if (passed > 0) return eka+toka+kolmas; - - // Returns the sum of the numbers given in numbersStr - - // not yet implemented - else return 0; + return result; } - public int cN (String a) // cN = CheckNumber wtf was I planning to with this? + public int cN (String a) // cN = ChangeNumber { return Integer.parseInt(a); } @@ -54,18 +27,66 @@ public int cN (String a) // cN = CheckNumber wtf was I planning to with this? // this checks only if a character is a digit or one of the three other allowed figures public int cC (char a) { - if (Character.isDigit(a)) return 1; - if (a == ',') return 2; - if (a == '\\') return 3; + // was used to test why system failed : System.out.println("character is " +a); + if (Character.isDigit(a)) return 1; + // became obsolete with the split - command if (a == ',') return 2; + /* these two might become obsolete when string "\n" can be replaced with "," leaving them in code + to remind me in similar selections in future programs + if (a == '\\') return 3; if (a == 'n') return 4; + */ return 0; } - + // completely useless after finding out about split - command for strings public String separate (String a, int x, int y) // { return a.substring(x, y); } + + public int[] find_numbers(String numbersStr) + { + System.out.println("Stringi on "+ numbersStr); + String luvut[] = toStrings(numbersStr); // new String[3]; // Finnish for numbers[] + int numbers = luvut.length; + int brakes[] = new int[numbers]; // used to store the ints changed from strings. + int i, j; + for (i=0; i