안녕하세요. 저는 모두 초보 프로그래머입니다. 나는 내 수업에 대해 다음 코딩 프롬프트 작업입니다 : 당신의 임무는 다음과 같은 서명하는 방법을 작성하는 것입니다 :내 배열에서 Java 코드의 특정 요소를 제거하는 방법
public static String[] removeFromArray(String[] arr, String toRemove)
어떤없이 제외하고, 편곡 같은 내용이있는 문자열 배열을 반환해야하는 방법 toRemove 문자열이 발생했습니다. 예를 들어, 만약 당신의 방법은 (는) 다음과 같은 출력을 생성해야
String[] test = {“this”, “is”, “the”, “example”, “of”, “the”, “call”};
String[] result = removeFromArray(test, “the”);
System.out.println(Arrays.toString(result));
아래의 코드에 의해 호출됩니다
[this, is, example, of, call]
참고 : 귀하의 방법은 테스트 프로그램에 의해 편곡과 toRemove에 대한 값을 전달합니다 - 은 사용자의 메서드 내에서이 값들을 읽지 않아야합니다. 또한 크레딧을 받으려면 위에 요청한 서명이있는이 메서드를 작성해야합니다. 메서드를 호출하는 코드를 작성할 필요가 없으며 메서드 자체 만 호출하면됩니다. 힌트 : 배열을 만들 때 배열의 길이를 지정해야하므로 을 입력 배열을 통해 두 개의 루프로 만들 필요가 있습니다. toRemove 문자열의 발생 횟수를 계산하려면
을 만들 수 있습니다. 적절한 크기의 새 배열과 다른 모든 문자열을 새 배열에 복사하는 두 번째.
코드에서 작동하는 모든 것이 있지만 새 배열을 인쇄해야하는 마지막 부분이 작동하지 않습니다. 작게 만들어서 인쇄 할 수 있지만 그 부분을 가져올 수는 없습니다. 일하다. 나는 널 (null)을 제거해야한다는 것을 알고 있지만, 어떻게해야할지 모르겠다. 또한 내 코드는 내가 가지고있는 테스트 케이스가 아닌 모든 배열에서 작동해야한다. 도움이나 조언이 정말 좋을 것입니다. 대단히 감사합니다 !!! :) 여기 내 코드입니다 :
public static void main(String[] args) {
String[] test = {"this", "is", "the", "example", "of", "the", "call"};
String[] remove = removeFromArray(test, "the");
System.out.println(Arrays.toString(remove));
}
public static String[] removeFromArray(String[] arr, String toRemove) {
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i].equals(toRemove)) {
count++;
}
}
String[] result = new String[arr.length - count];
//for (int i = 0; i < arr.length; i++) {
// if(!arr[i].equals(toRemove)){
// result[].equals(arr[i]);
//}
//}
return result;
}
*** ... "하지 않는 만들 것이다, 자바 8 개 스트림이 있습니다 작품 "***이게 무슨 뜻이야? exploiding입니까? 뭔가 다른 것을 인쇄하고 있습니까? –
['System.arraycopy'] (https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#arraycopy-java.lang.Object-int-java.lang.Object -int-int-) – MadProgrammer
@MadProgrammer, 제목 자체의 대답은'System.arraycopy'입니다. 그러나 내용은 제목과 관련이 없습니다. – Alex