이것은 실제로 에서 코드북으로 이동하는 연습 문제입니다. 문제의 정의는 다음과 같습니다.지정된 하위 문자열을 Java로 삭제
주어진 문자열에서 "del"이라는 문자열이 인덱스 1에서 나타나는 경우 해당 "del"이 삭제 된 문자열을 반환하십시오. 그렇지 않으면 문자열을 변경하지 않고 반환합니다.
- delDel ("adelbc") "aHello"→ "ABC"
- delDel ("adelHello")
- delDel ("adedbc") "adedbc"→
→ 다음과 같이 나의 작업은 다음과 같습니다
public String delDel(String str) {
String del = "del";
if (str.indexOf(del, 1) == 1){
str.replaceFirst("del", null);
}
return str;
}
그것은 대부분의 경우에 대해 잘 작동하지만 내가 NullPoi를 얻을 수 "adelbc", "adelHello"및 "adel"의 경우는입니다. 나는 왜 그런지 이해할 수 없다. 당신은 오픈 JDK 소스에 자세히 보면
나는 CodingBat이 주어진 시그니처가있는 함수를 제공하고 테스트를 실행해야한다고 가정합니다. – mszymborski
null 대신에 ""'- 빈 문자열 -을 사용한다면 어떨까요? 어쩌면 JRE는 대체 문자열에서 뭔가를 실행합니다. 여기에 null을 사용하는 것은 아주 이상합니다. – mszymborski
그냥 로컬에서 테스트했습니다. 'null'을 대체 할 문자열로 사용하면'NullPointerException'을 던집니다. ''''당신이하고 싶은 일이 분명합니다. – MattDs17