withoutX
이라는 메서드가 있다고 가정하면 문자열이 주어지면 x 인 경우 문자열의 처음과 마지막 문자를 제거합니다.이 코드가 실행되는 이유는 무엇입니까?
내 코드는 다음과 같습니다
public String withoutX(String str) {
if(str.length()>0 && str.substring(0,1).equals("x")) {
str = str.substring(1);
}
if(str.length()>0 && str.substring(str.length()-1).equals("x")) {
str = str.substring(0,str.length()-1);
}
return str;
}
왜이 "STR = X"빈 문자열 (")"를 반환합니까? str = str.substring(1)
이 범위를 벗어난 인덱스를 참조하기 때문에 str = "x"가 첫 번째 if
문 다음에 실패하지 않을까요? (str = "x"의 최대 인덱스는 0입니다)?
'str == 0' ???? – Andreas
또한'? :'는 우선 순위를 제외하고는 가장 낮기 때문에 조건을 괄호로 묶을 필요는 없지만 종종'? '를 괄호로 묶을 필요가있다. :'구조체, 즉'str.length() - (str.endsWith ("x")? 1 : 0)'이 필요합니다. – Andreas
@Andreas typo. 결정된. –