목적
- JDK에서 기본으로 제공하는 기능을 사용하는 경험한다.
- javadoc 문서를 참고해 JDK 문서 활용 방법을 경험한다.
요구사항
- 다음 예와 같이 쉼표를 구분자로 하는 문자열 계산기를 구현한다. (예 : “” => 0, "1,2" => 3, "1,2,3" => 6)
과정
- TODO의 힌트를 참고해 add() method 구현을 완성한다.
1단계
빈 문자열을 입력할 경우 0을 반환해야 한다. (예 : “” => 0)
class StringCalculator { int add(String text) { // TODO 빈 문자열인지 판단은 text.isEmpty()로 가능 return 0; } public static void main(String[] args) { StringCalculator cal = new StringCalculator(); System.out.println("결과 : " + cal.add("")); } }
2단계
- 숫자가 하나 포함되어 있는 문자를 전달할 경우 문자열의 숫자를 반환한다.(예 : "3" => 3);
class StringCalculator { int add(String text) { // TODO Integer.parseInt(text)를 사용하면 문자열을 숫자로 반한환다. return 0; } public static void main(String[] args) { StringCalculator cal = new StringCalculator(); System.out.println("결과 : " + cal.add("")); System.out.println("결과 : " + cal.add("3")); } }
3단계
- 숫자 두개를 컴마(,) 구분자로 입력할 경우 두 숫자의 합을 반환한다.(예 : “1,2” => 3)
class StringCalculator { int add(String text) { // TODO text.split(",")를 활용해 문자열을 쉼표로 분리한다. String[] tokens = text.split(","); int result = Integer.parseInt(tokens[0]) + Integer.parseInt(tokens[1]); return result; } public static void main(String[] args) { StringCalculator cal = new StringCalculator(); System.out.println("결과 : " + cal.add("")); System.out.println("결과 : " + cal.add("3")); System.out.println("결과 : " + cal.add("1,2")); } }
4단계
- 숫자 세개를 컴마(,) 구분자로 입력할 경우 두 숫자의 합을 반환한다.(예 : “1,2,3” => 6, "2,3,4,5" => 14)
class StringCalculator { int add(String text) { String[] tokens = text.split(","); // TODO tokens 배열 크기만큼 for문을 돌면서 합을 구한다. // 배열 크기는 tokens.length로 알 수 있다. int result = Integer.parseInt(tokens[0]) + Integer.parseInt(tokens[1]); return result; } public static void main(String[] args) { StringCalculator cal = new StringCalculator(); System.out.println("결과 : " + cal.add("")); System.out.println("결과 : " + cal.add("3")); System.out.println("결과 : " + cal.add("1,2")); System.out.println("결과 : " + cal.add("1,2,3")); System.out.println("결과 : " + cal.add("2,3,4,5")); } }
결과
- 위 4단계를 끝냈을 때 StringCalculator 클래스의 add method는 4가지 요구사항을 모두 만족해야 한다.
- 즉, 위 4단계의 main method를 통해 5개의 결과가 모두 정상적으로 출력되어야 한다.
피드백
면담 내용 정리
- 중간에 흐름이 끊기면 그 흐름을 다시 회복하는데 많은 시간이 필요하다.
- 다음 단계로 넘어가는 시점에 학생들이 참고할 동영상이 있는 것이 좋겠다. 아무 것도 없는 상태에서 문서로만 학생들이 따라오는데는 어려움이 있다.
- 동영상은 라이브 코딩과 말을 같이 하는 것이 좋겠다.
- google docs에 학습 과정을 기록하고, 기록하면서 질문들이 있으면 이 질문을 남긴다.
- 처음부터 eclipse를 사용하지 않고 text editor를 사용하는 부분에 대한 느낌은? 2주 동안 진행할 계획임.
- text editor를 사용하는 것이 class를 이해하는데 큰 도움이 되었다.
- 2주 정도라면 text editor를 사용하는 것이 좋다고 생각한다.
- 처음 자바를 배울 때 class라는 것이 생소하기 때문에 좋을 것으로 생각한다.
- 터미널 처음 쓰는 것도 재미있다는 느낌이 든다.
- 수업 시간은 어떻게 배정하는 것이 좋겠는가?
- 3시간은 수업하고 1시간은 각 팀별로 미팅하는 시간을 가지는 것도 좋겠다.
- 수업은 월/목, 화/금과 같이 이틀의 간격을 두는 것이 좋겠다.
박태준 피드백
- 빈 문자열의 출력을 0으로 표현하였다.
- if(text.isEmpty());
- return 0;
- 문자열 중에서 숫자 1개의 출력을 표현하였다.
- int result = Integer.parseInt(text);
- return result;
- 문자열 중에서 숫자 2개의 출력을 합으로 표현하였다.
- String[] tokens = text.split(",");
- result = Integer.parseInt(tokens[0])+ Integer.parseInt(tokens[1]);
- return result;
조유리 피드백
- 계속 variable result 라고 나와서 문제 2번까지와 3번을 합치지 못했다.
- 문제 1번과 2번은 문제 없고 1번과 3번도 문제 없는 걸로 봐서 아무래도 쪼갤 것이 없으면 어레이에 아예 안들어 가는것 같다-> 들어간다! , 사이즈를 프린트 해보니까~!!
- 문제 4번은 for문을 돌리는것 까지는 되는데, for 문에 숫자로 사이즈를 알려주면 잘 하는데 함수를 쓰면 안된다. string length 함수 쓰는 법을 잘 모르겠다..ㅠ : 사이즈 문제!!