일부 개별 부품으로 수업 과제를 진행하고 있습니다. 사용자로부터 문자열 입력을 받아서 각 문자 사이에 별표를 삽입하는 루프 (가급적이면 for 루프)를 만들어야합니다. 나는 완전히 누군가에게 도움을 줄 수 있다면 그것을 시작하기에 도움이 될 것입니다.Java - For 루프가 사용자 입력 문자열의 문자 사이에 별표를 삽입합니다.
나는이 함께 왔어요 지금까지
} else if (choice.equalsIgnoreCase("C")) {
System.out.print("Enter text here: ");
String orig = input.nextLine();
// To use for asterisk insertion
int x = 1;
int y = 2;
for (int length = orig.length(); length > 0;) {
orig = orig.substring(0,x) + "*" + orig.substring(y);
x = x + 2;
y = y + 2;
}
}
그것은 잘 컴파일하지만 난 그것을 테스트하고 스레드에서 예외와 함께 온다 일부 텍스트를 입력 할 때 "기본"java.lang.StringIndexOutOfBoundsException : 문자열 인덱스가 범위를 벗어남 : 5
대신 문자열을 사용하는 것이 훨씬 쉽고 직관적이고 간단하여 StringBuilder에 (마지막 제외) 다음에 별표 원래 문자열의 각 문자를 추가하여 새로운 문자열을 다시 효율적으로 될 것입니다. 물론 첫 번째 문자를 제외한 각 문자 앞에 별표를 추가 할 수도 있습니다. –
그 유일한 문제는 우리가 StringBuilder를 사용하는 법을 아직 배웠지 않았기 때문에 내가 그 방법을 사용해야하는지 잘 모르겠다는 것입니다. 또한 예제 출력은 첫 번째 문자 뒤에 첫 번째 별표를 넣고 마지막 문자 뒤에 마지막 별표를 배치합니다. 즉; h * i * – user2827341
나는 내가받은 오류로 끝날 때까지이 프로세스를 중단 할 때 루프를 알려주는 방법을 찾아야한다고 생각한다. – user2827341