Skip to content

choiminu/java-calculator-7

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

프로젝트 소개

이 프로젝트는 사용자가 입력한 문자열에서 숫자를 추출해 합산하는 계산기입니다. 문자열 내에서 여러 구분자를 사용하여 숫자를 구분할 수 있으며, 커스텀 구분자도 지정할 수 있습니다. 잘못된 입력이 발생할 경우, IllegalArgumentException 예외를 발생시키고 프로그램을 종료합니다.


📝 기능 구현 목록


1. 입력

1.1 사용자 입력 처리

  • 입력 : 사용자로부터 문자열을 입력받는다.
  • 반환 : 입력된 문자열 (String)
  • 기능 : 사용자가 입력한 덧셈할 문자열을 받아 반환한다. 입력은 camp.nextstep.edu.missionutils.ConsolereadLine() 메서드를 사용하여 처리한다.

2. 애플리케이션 로직

2.1 구분자 판별 기능

  • 입력 : 문자열 (예 : "//;\n1;2;3" 또는 "1,2:3")
  • 반환 : 구분자 문자열
  • 기능 : 입력된 문자열을 분석하여 기본 구분자(쉼표 ,, 콜론 :) 또는 커스텀 구분자를 판별하고, 사용할 구분자를 결정한다.

2.2 구분자 처리 기능

  • 입력 : 문자열 (예: "//;\n1;2;3" 또는 "1,2:3")
  • 반환 : 문자열 배열
  • 기능 : 구분자 판별 기능의 결과를 사용하여 입력된 문자열을 기본 구분자(쉼표 ,, 콜론 :) 또는 커스텀 구분자를 사용해 분리한 후, 각 숫자 문자열로 구성된 리스트를 반환한다.

2.3 숫자 파싱 기능

  • 입력 : 구분자 처리 기능을 통해 분리된 문자열 배열 (예: ["1", "2", "3"])
  • 반환 : 정수 리스트 (List<Long>)
  • 기능 : 문자열 배열을 순회하며 각 요소를 정수로 변환하고, 이를 정수 리스트로 반환한다.

2.4 유효성 검사 기능

2.4.1 숫자 외의 문자 포함 여부 검사 기능
  • 입력 : 구분자 처리 기능을 통해 반환된 문자열 배열
  • 반환 : 문자열 배열에 숫자가 아닌 문자가 포함된 경우 예외 발생(IllegalArgumentException)
  • 기능 : 문자열 배열을 순회하며 숫자 외의 문자가 포함되어 있는지 확인한다. 요구사항에서 양수로 구성된 문자열만 허용하므로, 음수 기호를 포함하여 숫자가 아닌 문자가 포함된 경우 IllegalArgumentException을 발생시킨다.

2.4.2 빈 문자열 검사 기능

  • 입력 : 사용자로부터 입력된 문자열 (String)
  • 반환 : 입력된 문자열이 비어 있는 경우 0을 반환한다.
  • 기능 : 입력된 문자열이 빈 문자열인지 확인하고 빈 문자열일 경우 0을 반환한다.

2.4.3 숫자 변환 검사 기능

  • 입력 : 문자열 (String)
  • 반환 : boolean
  • 기능 : 입력된 문자열을 숫자로 변환할 수 있으면 true를 반환하고, 그렇지 않으면 false를 반환한다.

2.5 계산 기능

  • 입력 : 정수 리스트
  • 반환 : 합산 결과 (double)
  • 기능 : 입력된 정수 리스트의 각 요소를 순회하며 각 정수를 더하여 총합을 계산하여 반환한다.

2.6 숫자 포맷팅 기능

  • 입력 : 합산 결과 (double)
  • 반환 : 문자열 (String)
  • 기능 : 계산 기능을 통해 합산된 결과를 포맷팅하여 문자열로 반환한다.

3. 출력

3.1 결과 출력

  • 입력 : 계산 결과 (long)
  • 반환 : 없음 (결과를 콘솔에 출력)
  • 기능 : 계산된 덧셈 결과를 콘솔에 출력하여 사용자에게 보여준다. 문제의 요구사항에 맞게 덧셈 결과를 명확하게 출력한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%