다른

Mac '문자열 색인이 범위를 벗어났습니다: 0' ...누군가 나에게 여기서 무엇이 잘못되었는지 말해 줄 수 있습니까? (자바)

체이스 R

오리지널 포스터
2008년 5월 8일
PDX
  • 2009년 6월 2일
방금 내 Java 클래스에 대한 이 프로그램 작성을 마쳤습니다. 울타리를 설치하는 데 드는 비용을 계산하는 간단한 프로그램입니다. 마지막으로 '다른 견적을 내시겠습니까(Y/N)'라고 묻고 사용자는 예 또는 아니오를 선택해야 합니다. 그러나 내 실행을 마친 후에는 해당 옵션이 표시되지 않고 다음과 같이 표시됩니다.

다른 견적 계산(Y/N): 'main' 스레드의 예외 java.lang.StringIndexOutOfBoundsException: 문자열 인덱스가 범위를 벗어남: 0
java.lang.String.charAt(String.java:558)
Test1.main(Test1.java:73)에서

왜 이러는거야!!!

그건 그렇고 다음은 프로그램입니다.

코드: |_+_|

리틀로디914

2004년 6월 9일


뉴욕주 로체스터
  • 2009년 6월 2일
와, 까다롭네요. 마지막 'read.nextLine()'을 'read.next()'로 변경하여 작동하도록 했습니다. 하지만 첫 번째 방법으로 작동하지 않는 이유를 알아보기 위해 조금 더 자세히 살펴보겠습니다.

편집하다: 포인터를 현재 줄 너머로 전진시키는 nextLine() 메서드와 관련이 있는 것 같습니다. 나는 그것을 잘 이해하지 못하지만 다음 링크가 약간의 혼란을 해결하는 데 도움이 될 수 있습니다.

API 스캐너
관련 포럼 게시물

하이레즈

2004년 1월 6일
미국 서부
  • 2009년 6월 2일
나는 당신의 것 중 하나를 추측 할 것입니다 이전 읽기 호출은 키보드 입력 버퍼에 개행 문자를 남깁니다. 따라서 nextLine()을 호출하면 빈 문자열이 발생하여 위치 0에 문자가 없기 때문에 예외가 발생합니다. 이것은 또한 많은 콘솔 입력 C 기능의 문제입니다. 어떻게 든 더미 읽기 호출 등으로 버퍼를 먼저 플러시하고 싶을 것입니다. 나는 오랫동안 Java를 사용하지 않았기 때문에 올바른 절차가 정확히 무엇인지 모르겠습니다.

그나셔729

정지 된
2005년 11월 25일
  • 2009년 6월 2일
Chase R은 다음과 같이 말했습니다: 저는 방금 제 자바 클래스를 위한 이 프로그램 작성을 마쳤습니다. 울타리를 설치하는 데 드는 비용을 계산하는 간단한 프로그램입니다. 마지막으로 '다른 견적을 내시겠습니까(Y/N)'라고 묻고 사용자는 예 또는 아니오를 선택해야 합니다. 그러나 내 실행을 마친 후에는 해당 옵션이 표시되지 않고 다음과 같이 표시됩니다.

다른 견적 계산(Y/N): 'main' 스레드의 예외 java.lang.StringIndexOutOfBoundsException: 문자열 인덱스가 범위를 벗어남: 0
java.lang.String.charAt(String.java:558)
Test1.main(Test1.java:73)에서

왜 이러는거야!!!

줄 번호를 표시하도록 만들 수 있는 프로그램 편집기에 소스 코드가 있으므로 Test1.main 파일에서 줄 73의 위치를 ​​찾을 수 있어야 합니다. 그러면 문제가 발생하는 위치가 표시됩니다.

이제 인덱스 0이 '범위를 벗어남'이라는 예외가 있습니다. n개의 문자가 있는 문자열에 액세스하는 경우 유효한 인덱스는 무엇입니까?

이제 인덱스 0이 유효한 인덱스가 아닌 정확한 상황을 알려줄 수 있습니까?

그것은 당신의 질문에 대답해야합니다.

사일런트팬더

모더레이터 명예
2002년 10월 8일
대나무 숲
  • 2009년 6월 2일
gnasher729는 다음과 같이 말했습니다: 소스 코드가 있으므로 줄 번호를 표시하도록 만들 수 있는 프로그램 편집기에서 Test1.main 파일의 73번째 줄을 찾을 수 있을 것입니다. 그러면 문제가 발생하는 위치가 표시됩니다.

라인은 다음과 같습니다.

코드: |_+_|
'다른 견적 계산(Y/N):'이 표시된 직후