게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[자바]스택이랑 스트링토크나이져관련해서 질문좀 여쭤볼게요!
게시물ID : programmer_6566짧은주소 복사하기
작성자 : Elemenophy
추천 : 0
조회수 : 897회
댓글수 : 2개
등록시간 : 2014/11/16 21:11:34
컴퓨터게시판에 모르고 글올렸다가 다시 일로 글을 옮겼습니다. 프로그래밍언어 입문단계인데요. 토크나이저랑 스택을이용해서 계산기를 만들어보자-해서 만들고있는데 에러가 나서 질문드려요!
public class Ex {

public static void main(String[] args) {
Stack<Integer> stack = new Stack<Integer>(); //int형을 받는 스택을 생성하고
StringTokenizer st = new StringTokenizer("50+10", "+", true); //Tokenizer생성하고
while(st.hasMoreTokens()) //Tokenizer에 토큰이 있을떄까지
{
if(isNumber(st.nextToken())) //토큰이 숫자라면
{
int a = Integer.parseInt(st.nextToken()); //토큰값을 인트형으로 변환하고
stack.push(a); //스택안에 값을 집어넣는다!
}
}
}
라는걸 하려고했더니 
Exception in thread "main" java.lang.NumberFormatException: For input string: "+"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at cp11.Ex4.main(Ex4.java:12)
라는 에러가 뜨는데요. 제가보기엔 에러코드 마지막줄보니까 토큰값을 인트형으로 변환하는데 방법이 잘못된거같은데
자바고수님들 해법좀 알려주시면 감사하겠습니당..


참고로 isNumber메서드는
static boolean isNumber(String str){
boolean s;
try
{
Integer.parseInt(str);
s = true;
}
catch(NumberFormatException nfe)
{
s=false;
}
return s;
}
이렇게 만들었는데 잘 구동되는거 같더라고요. 앞서 올렸던 글에서 st.nextToken()을 두번 사용해서 에러가 났다는거같으시다는데 어떻게 고쳐가야할까요..?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호