자바에서 메인 매개변수인 args[]로 *를 받을 수 없나요?
도와주세요 ㅠㅠ
학교에서 자바를 배우는 중인데 별것도 아닌거 같은게 너무 해결이 안되네요..
자바로 간단한 정수형 사칙연산을 만드는데 이런 프로그램이 있습니다.
문제는 여기서 예를 들어 2 * 3 이런식으로 곱하기 인수만 주면 포맷익셉션이 뜨고 동작을 안하네요..
나누기 표시 /는 동작 잘되는데 말이죠..
자바는 포인터가 없어 *가 그냥 곱셈으로만 쓰인다고 알고 있었는데 너무 답답한.....
에디터로는 에디트 플러스 2사용중이구요..
급한 숙제인데 많이 고민하다가 역시 프로그래밍 고수님은 여기 많으신거 같아서 이곳에 질문 올립니다 (_ _)
그럼 도움 부탁드립니다..
public class test{
public static void main(String args[]){
int a = Integer.parseInt(args[0]);
char ch = args[1].charAt(0);
int b = Integer.parseInt(args[2]);
switch(ch){
case '+':
System.out.println(a + "" + ch + "" + b + "=" + (a+b));
break;
case '-':
System.out.println(a + "" + ch + "" + b + "=" + (a-b));
break;
case '/':
System.out.println(a + "" + ch + "" + b + "=" + (a/b));
break;
case '*':
System.out.println(a + "" + ch + "" + b + "=" + (a*b));
break;
}
}
}
다른 방식으로 사칙연산 만들 수 있는 법도 있다는건 아는데 위의 코드 형식으로 해결해야되서요;;
다른 방법 쓰면 안되나요?
명령 shell에서 하면 어떤 형태로든 모양이 제대로 안 나오는 것 같은데 말이예요.
java test 3 '*' 5 하면 실행 될 겁니다.
java test 3 * 5 하면 *가 문자로 인식하는 것이 아니라 현재 폴더에 있는 파일이름이 들어갑니다.
쉘에 의해서 해석됨.
따라서 실제로 args[0] = 3, args[1], args[2]을 찍어 보시면 현재 실행 하는 폴더에 파일 이름이 들어갑니다.
InputStreamReader으로 입력 문자를 받아 파싱하도 간편하죠
--
Go For It, Go For Mad.
http://gtko.springnote.com
--
Go For It, Go For Mad.
http://gtko.springnote.com
먼저 답변 달아주신
먼저 답변 달아주신 분들께 감사드립니다..
근데 InputStreamReader는 아직 배우지 않은 부분이라;; 솔직히 배운 부분들로는 어케 해결해야될지 모르겠네요..
위의 코딩이 +,-까지는 완성된 상태로 */를 덧붙이라고 나온 과제라서요..
그리고 suns1997님게서 말씀하신 3 '*' 5 이런 방식으로도 안되는군요..
그냥 알파벳 x를 입력할때 곱하기 표시로 사용하면 간단한데 굳이 교수님께서 *연산을 완성하라고 하셔서요 ㅠㅠ
Go-llum ~! Go-llum~!
~(ㅡωㅡ ~) (~ㅡ ωㅡ)~
Go-llum ~! Go-llum~!
~(ㅡωㅡ ~) (~ㅡ ωㅡ)~
프로그램은 수정하지 마시구요
올리신 프로그램으로 3 '*' 5 이됩니다.
suns1997님 말씀을 듣고
suns1997님 말씀을 듣고 해보니 cmd 창에서 실행할 경우 3 "*" 5 로 하니까 정상적으로 나오네요..
작은 따옴표로 감싸면 그냥 press any key만 나오고 큰 따옴표로 바꾸니까 결과물이 나오는데 문제는 학교에서 실습하는 환경이 에디트 플러스2를 사용해서 ctrl+3으로 인수를 주는 방식인데 이렇게 할 경우 3 "*" 5로 입력해도 3 * 5할 경우와 똑같이 FormatException예외가 발생합니다.ㅠㅠ
코드랑 에딧플러스2로 입출력한 결과물 스샷까지 올려야 되는데 완전 난관이네요 ㅜㅠ
Go-llum ~! Go-llum~!
~(ㅡωㅡ ~) (~ㅡ ωㅡ)~
Go-llum ~! Go-llum~!
~(ㅡωㅡ ~) (~ㅡ ωㅡ)~
도대체 왜 자바
도대체 왜 자바 실습을 하는데 공개에다 무료이기까지 한 자바를 위해 개발된 이클립스를 놔두고 에디트 플러스인지 뭔지 하는 비공개 유료 듣보잡을 사용하는지 이해가 안가는군요. 학과장에게 과목 실습 내용에 대해 항의해야 될 것 같다는 생각이 듭니다.
임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
에디트플러스가
에디트플러스가 듣보잡이라는데는 동의할 수 없네요.
국산 에디터로 국내외에서도 많이 사용되고 기능도 괜찮은 것으로 알고 있습니다.
저야 울트라에디트 정품 사용자이지만..
학교에서 사이트 라이센스로 구매해서 사용하는 것도 좋아보이구요.
문제는 실습 결과물을 에디트플러스 스크린샷으로 꼭 제출하도록 한 교수(혹은 조교)가 좀 이상한 거 같네요.
콘솔이든 다른 에디터 창이든 출력만 해서 보여주면 될텐데요.
글쓰신 분은 굳이 따를 필요 없이 콘솔 결과를 캡쳐해서 내도 될 것 같습니다.
저도 이전에 자바 어플리케이션 간단한 거 개발할 때 이클립스 사용했습니다만,
다른 거 사용하는 사람도 있을 수 있지요. 에디트플러스든 울트라에디트든요.
음
어짜피 학교이고 한데;;
기왕이면 국산무료인 acroedit 어떤가 싶군요. 전 acroedit 를 사용합니다.
--------------- 절취선 ------------------------
하늘은 스스로 삽질하는 자를 삽으로 팬다.
http://glay.pe.kr
--------------- 절취선 ------------------------
하늘은 스스로 삽질하는 자를 삽으로 팬다.
http://glay.pe.kr
"*" 대신 \* 해도
"*" 대신 \* 해도 그런가요 ?
vacancy// "*" 대신에 \*
vacancy// "*" 대신에 \* 하면 예외가 아닌 에러가 나오네요.. 위의 소스로 가능한 방법은 cmd창에 "*"하나뿐인듯 싶습니다;;
그나저나 여러분이 댓글로 많은 도움 주셔서 너무 감사드립니다..
과제는 그냥 dorado2님 말씀대로 그냥 콘솔결과 캡쳐해서 제출했습니다ㅋ
공부해야할게 아직도 많고 많지만 개인적으로 자바라는 것이 C에 비해서 그리 재밌지는 않네요.. ㅠㅠ
Go-llum ~! Go-llum~!
~(ㅡωㅡ ~) (~ㅡ ωㅡ)~
Go-llum ~! Go-llum~!
~(ㅡωㅡ ~) (~ㅡ ωㅡ)~
Hacking 하는 재미가 좀 나중에 나오긴 하죠.
표준 library가 많이 있고, 만들어진 framework가 많다는 것이 Java의 재미죠.
댓글 달기