From 1a6c73a3fef410ee4b8bd70ba2c94e345bb2d4e4 Mon Sep 17 00:00:00 2001 From: hyojung Date: Thu, 22 Apr 2021 16:58:17 +0900 Subject: [PATCH 1/3] Create StringCalculator.java --- src/main/java/StringCalculator.java | 65 +++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/main/java/StringCalculator.java diff --git a/src/main/java/StringCalculator.java b/src/main/java/StringCalculator.java new file mode 100644 index 0000000..9abaf8a --- /dev/null +++ b/src/main/java/StringCalculator.java @@ -0,0 +1,65 @@ +import java.util.*; + +public class StringCalculator { + + public static void main(String[] args){ + StringCalculator stringCalculator = new StringCalculator(); + + /* + Scanner sc = new Scanner(System.in); + System.out.print("계산식 : "); + String input = sc.next();s + */ + String input = "12222 + 33315 / 15"; + + int output = stringCalculator.calculateStr(input); + System.out.println(output); + } + + public int calculateStr(String input){ + String[] inputSplit = input.split(" "); + System.out.println(Arrays.toString(inputSplit)); + int number = Integer.parseInt(inputSplit[0]); + for(int i = 0; i < inputSplit.length - 2; i += 2){ + System.out.println("operator -> "+inputSplit[i+1].charAt(0)); + number = calculate(number, inputSplit[i+1].charAt(0), Integer.parseInt(inputSplit[i+2])); + } + return number; + } + + public int calculate(int firstFactor, char operator, int secondFactor) { + System.out.println("calculating -> " + firstFactor + operator + secondFactor); + if (operator == '+') + return add(firstFactor,secondFactor); + if (operator == '-') + return subtract(firstFactor,secondFactor); + if (operator == '*') + return multiply(firstFactor,secondFactor); + if (operator == '/') + return divide(firstFactor,secondFactor); + + throw new RuntimeException("알 수 없는 연산자"); + } + + + public int add(int num1, int num2){ + return num1 + num2; + } + public int subtract(int num1, int num2){ + return num1 - num2; + } + public int multiply(int num1, int num2){ + return num1 * num2; + } + public int divide(int num1, int num2){ + try { + return num1 / num2; + } catch(ArithmeticException e){ + System.out.println("0 으로 나눌수 없음 : " + num1 + "/" + num2); + } + throw new RuntimeException(); + } + + + +} \ No newline at end of file From 67b0e88abc5145e9cce37761b3e9f10f34fe197f Mon Sep 17 00:00:00 2001 From: hyojung Date: Thu, 22 Apr 2021 17:09:54 +0900 Subject: [PATCH 2/3] Update StringCalculator.java --- src/main/java/StringCalculator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/StringCalculator.java b/src/main/java/StringCalculator.java index 9abaf8a..c788c9a 100644 --- a/src/main/java/StringCalculator.java +++ b/src/main/java/StringCalculator.java @@ -18,17 +18,17 @@ public static void main(String[] args){ public int calculateStr(String input){ String[] inputSplit = input.split(" "); - System.out.println(Arrays.toString(inputSplit)); + //System.out.println(Arrays.toString(inputSplit)); int number = Integer.parseInt(inputSplit[0]); for(int i = 0; i < inputSplit.length - 2; i += 2){ - System.out.println("operator -> "+inputSplit[i+1].charAt(0)); + //System.out.println("operator -> "+inputSplit[i+1].charAt(0)); number = calculate(number, inputSplit[i+1].charAt(0), Integer.parseInt(inputSplit[i+2])); } return number; } public int calculate(int firstFactor, char operator, int secondFactor) { - System.out.println("calculating -> " + firstFactor + operator + secondFactor); + //System.out.println("calculating -> " + firstFactor + operator + secondFactor); if (operator == '+') return add(firstFactor,secondFactor); if (operator == '-') From facf0044d0f80e0f8c4c314fe255bc2a620d2eb8 Mon Sep 17 00:00:00 2001 From: hyojung Date: Tue, 27 Apr 2021 17:54:32 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=BD=94=EB=93=9C=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Input.java | 20 ++++++++++++++++ src/main/java/Main.java | 9 +++++++ src/main/java/Output.java | 5 ++++ src/main/java/StringCalculator.java | 22 ++---------------- src/main/java/out/production/main/Input.class | Bin 0 -> 1129 bytes src/main/java/out/production/main/Main.class | Bin 0 -> 685 bytes .../java/out/production/main/Output.class | Bin 0 -> 449 bytes .../production/main/StringCalculator.class | Bin 0 -> 1950 bytes src/main/java/out/production/main/empty.txt | 0 9 files changed, 36 insertions(+), 20 deletions(-) create mode 100644 src/main/java/Input.java create mode 100644 src/main/java/Main.java create mode 100644 src/main/java/Output.java create mode 100644 src/main/java/out/production/main/Input.class create mode 100644 src/main/java/out/production/main/Main.class create mode 100644 src/main/java/out/production/main/Output.class create mode 100644 src/main/java/out/production/main/StringCalculator.class create mode 100644 src/main/java/out/production/main/empty.txt diff --git a/src/main/java/Input.java b/src/main/java/Input.java new file mode 100644 index 0000000..440635f --- /dev/null +++ b/src/main/java/Input.java @@ -0,0 +1,20 @@ +import java.util.Scanner; + +public class Input { + + public static String[] splitInput(){ + System.out.println("계산식 입력 : "); + Scanner sc = new Scanner(System.in); + String input = sc.nextLine(); + + String[] splitString = input.split(" "); + + checkInput(splitString); + + return splitString; + } + + public static void checkInput(String[] splitInput){ + if(splitInput.length % 2 == 0) throw new IllegalArgumentException("잘못된 연산입력입니다."); + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java new file mode 100644 index 0000000..6fb356c --- /dev/null +++ b/src/main/java/Main.java @@ -0,0 +1,9 @@ +public class Main { + public static void main(String[] args){ + calculate(); + } + public static void calculate(){ + StringCalculator stringCalculator = new StringCalculator(); + Output.printOutput(stringCalculator.calculateStr(Input.splitInput())); + } +} diff --git a/src/main/java/Output.java b/src/main/java/Output.java new file mode 100644 index 0000000..eda2ad8 --- /dev/null +++ b/src/main/java/Output.java @@ -0,0 +1,5 @@ +public class Output { + public static void printOutput(int num){ + System.out.println(num); + } +} diff --git a/src/main/java/StringCalculator.java b/src/main/java/StringCalculator.java index c788c9a..d460f8d 100644 --- a/src/main/java/StringCalculator.java +++ b/src/main/java/StringCalculator.java @@ -2,33 +2,15 @@ public class StringCalculator { - public static void main(String[] args){ - StringCalculator stringCalculator = new StringCalculator(); - - /* - Scanner sc = new Scanner(System.in); - System.out.print("계산식 : "); - String input = sc.next();s - */ - String input = "12222 + 33315 / 15"; - - int output = stringCalculator.calculateStr(input); - System.out.println(output); - } - - public int calculateStr(String input){ - String[] inputSplit = input.split(" "); - //System.out.println(Arrays.toString(inputSplit)); + public int calculateStr(String[] inputSplit){ int number = Integer.parseInt(inputSplit[0]); for(int i = 0; i < inputSplit.length - 2; i += 2){ - //System.out.println("operator -> "+inputSplit[i+1].charAt(0)); number = calculate(number, inputSplit[i+1].charAt(0), Integer.parseInt(inputSplit[i+2])); } return number; } public int calculate(int firstFactor, char operator, int secondFactor) { - //System.out.println("calculating -> " + firstFactor + operator + secondFactor); if (operator == '+') return add(firstFactor,secondFactor); if (operator == '-') @@ -38,7 +20,7 @@ public int calculate(int firstFactor, char operator, int secondFactor) { if (operator == '/') return divide(firstFactor,secondFactor); - throw new RuntimeException("알 수 없는 연산자"); + throw new RuntimeException("올바르지 않은 연산자"); } diff --git a/src/main/java/out/production/main/Input.class b/src/main/java/out/production/main/Input.class new file mode 100644 index 0000000000000000000000000000000000000000..088548c696c72a1e74076fe2fce614b3437ab181 GIT binary patch literal 1129 zcmZuwTTc@~6#k~A-DTKv*-}KjP(Y+DNWI_<5JZH8Sk$D3g!r_qo3gOoHtkmN)o5bE zi*FjE#s_`z2{8d93BLPNY=49C%(Q_L`f_H@nRCALeRF31{QI>JU<~sd?HFvvc?_wD zam0~OFf9BLjsPwQGpZuVaS@j|+HhIH6%}I~8m=n1rr~I)u2rC;fGvPTw+3}B61)mS01dIZxoVl~ zH3D6+2021yDD4^M`l6Aq>EP*HsbE_3wouAt^{61Ap#!>t8yaq6oLc_<@v`z_tFrkq zTKV*<{P}BiJgQ(q!z6AobV$nef;3EFT43DPFoQb`jM8T{+{K)RDEb)s4`nVmj+HT- znL?(NwOns*!?g0AopTwe*}L+$z4Dt6(aPH`K|nSacJp<4^UJ7cK?DLd+3km*4_4MJ zlkT%Flzv|HtSrqtCoVcty=Xg^d`Q#r=yEM1OM?hYjH6*1bY3Jm#3>RxJ|S_lK3g0f zfJ#OOpxw11f~`Lgb*gJ^c;eA9bjISxv5!iSFNp-p2f;AZh)jdgqmMp8JN+HN4;mPB zvSIR)v@%))iCwVowDF;nY)}UMh|pfECZG!^$ZJM7PEte^KO-HZxw?IEzd zjo>bndx;&WsbRf&2YhklCt60fD6tCOL-3-73WZ=)0_5nWHUnst4Wk4aCWbvYMS0x_ z;WW-r%U-HEOV&pu=nd6KEJ#Iwp4boM-y^gKZCMZPqV>0sl# P{W6br5a0l9eK_|YvegPt literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/Main.class b/src/main/java/out/production/main/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..b6c9919162c8c1cfc970051e6a8f884b7ba0056f GIT binary patch literal 685 zcmZ`$%TB^T6g>ll(o&!Je!nefBr)zZZj2^G)P;t`xEip*F}0A=`d@C8XyOO>QN}Zf zVvH_k?%Xr?oO9>S+xzn?fE{ewurOsKgJ}~pHj+A-#hgCP+gQM&i6s-u0_i;!sAyjx z>Es1`NKCsGBwWZy9gjJa3k zTX`>wz6|Qc^C(n7eYc}7!#eA8e_RV#)UU<9jOaGl>W~h)NF&q@d0~=WfqsUU~H_gO~gH^0KSchvO@1TGU_O971?=^l_z4dC5K&lipV@A8x z^i|YNM&10MuW-I!LEryIQR2+b;;5sVZE`%(S7x}SddRmnIu+Bzjz%8rmia;|JeB4kN@ZJ;N^l ukd>OBdqMK@3C3}ujnpI3ZJ0f|ehTS^GB9bJ`IgL3W(?!J6PVzhz~l!mn1gTt literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/Output.class b/src/main/java/out/production/main/Output.class new file mode 100644 index 0000000000000000000000000000000000000000..de85103dc22d662e92846a12acd57b659e0c1f53 GIT binary patch literal 449 zcmZutO;5r=5Pd@nTS^54@dLl&4L#V4@uKl!VnWi035NTEjV|d2DO(eNmL4?m;1BRe z8E1<|4(?%g=FOWoZ};=-{R6-W_Fa_Gu3`-x7wgy%*c8|zRL)hR^aa7{9gYb0WqKD9 z8i7i}>pUKZ*{vK$jI@GuBBPPal&OC}TR*5d!3hSrp5^+CP@82c(TkGRdVM2mC3#Gs zKEWNPc{T~Jl##40Xvb6eC_Pjl1iBu!u_LhSVGnh7_p8)2BtMeLy+0UF!-*y=LBprH z4ta%@=G^E61zDy3jWILSStw)n*8T@3h{AD{-~cv%kvS#sW(bZBS3cjwclqcI^jx&7 z94iILPvYEL5K!X`sA2_mM$GVOAqF@vD0N?9{mr}F0W4l)FKIYvpvgF4m17C5Z#)1~ AN&o-= literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/StringCalculator.class b/src/main/java/out/production/main/StringCalculator.class new file mode 100644 index 0000000000000000000000000000000000000000..55e604d03a49b55fb6862881868afd2e921c4946 GIT binary patch literal 1950 zcma)6OK%%h6#j1f7<)Qt66aNtF);;F$0nUNlvmOilC%LsnwF*nLV09j56KjJY}w0y@CV{wfW+gwW5+Q`gu0k>@44so-S3>azyJN~ zLjb2>sW^gh6%#nEViGA8{diT1*QA(|Vp@tB1!qDyt0Ih91+Rzk2GR=NRB;&NA-pBm zIVsMCFfZ5hDlXt{={~ODqJjm1;Az{j-IRbYKC&p_pDAQ5fsQ%bvF0oJ6{~c~T*>hy zGFQl$xka;NOTBUEch~H)v@N(L+gY74bD2ucbPJ^k0gdjSX3;3n7r#7r#k^`7In!A+ z>i!cWX#rvLe0t6-HgJTSwdfR2&!lDIL!a2C zvO8;Lh({n)C|V^6jn!s|u54urPIkxYGqYKNKs@b5`dQ~Bx!^L!$Z}=HEinzZ`AW{U zi@9qoleMqfk}AP(sO4%?CEH!gTdtis`&q^+x^}^tU~hQAg+is2v1V;aXYXFdj!SYh zJb?iPmo&VCMFsC_cn?b&;uz6z9EOH5DV~?&6bylZT}Cff9M{fU&6)zy+WN-!=GWUl z{#?8Fd93!$SGBubZg1AEZ`QuOB}=_er`-$(09SBX!w2|Kpnun|j(oae=du>r)KA1} zcYfRc{!VQB`ug^bo3$J3tny{;?#Sc~Ue3W&d?SwVMFA8DIa`#2)C{hIYap=&@e?;~&?$r7p$}2+wYmeI#1J)s z7?ah5*Xify*@>iY>=(36`cl#4!$9^2#1eWk>R%r7RpCoU1IyA{g@5u3U)#NZ{?IoV z`JH{W)(jfs#o#jq{okt@5TOn*}eIO9y=eOp8fgO z_U1eK*!lR1HS*nV^vf93a~t#b(f$C3m$uLm>8zq_u!=~en;V^*DtfBul`Yyr-y??0 z7Wp}_^+rX!whvPt