한 가지 방법으로 문제가 있습니다. 입력에는 문자열 (예 : (a + -b * i))과 기호 (c + -d * i)가 있습니다. 프로그램은이 값과 출력 결과를 계산해야합니다. 나는 첫 번째 대괄호에 표지의 색인을 가져야하고 두 번째 대괄호에 색인을 붙일 필요가있다. 그리고 내 프로그램이 효과가있을 것입니다. 그러나 입력 (a-b * i) - (c-d * i) 또는 (a-b * i) * (c-d * i)에서만 잘못된 결과를 반환하는 메서드 -1.일부 테스트에서 잘못된 출력
두 개의 대괄호에 대한 나의 방법.
public int getSign1(String str)
{
int sign1;
if(str.indexOf("+") < str.indexOf(")"))
sign1 = str.indexOf("+");
else if(str.indexOf("-", 2) < str.indexOf(")"))
sign1 = str.indexOf("-", 2);
else sign1 = -1;
return sign1;
}
public int getSign2(String str)
{
int sign2;
if(str.lastIndexOf("+") > str.lastIndexOf("("))
sign2 = str.lastIndexOf("+");
else if(str.lastIndexOf("-") > str.lastIndexOf("("))
sign2 = str.lastIndexOf("-");
else sign2 = -1;
return sign2;
}
두 번째 방법은 항상 작동하지만 첫 번째 방법은 아닙니다 (오류 찾기를 도와주세요).
예 : (1-2i)*(3-4i)
이
첫 번째 방법 2. 왜 -1을 반환하는 것이 아니라?
대단히 감사합니다. 나는 그것을 잊어 버린다. – rustock