-2
그래서 이진수를 10 진수 변환기로 만들고 사용자가 잘못된 인수를 입력하면 잘못된 문자를 잡아야합니다. 0 또는 1이 아닌 문자를 잡는 올바른 방법이 있다고 생각합니다. 그러나이 메서드를 기본 메서드 parseBinary에 구현하려고하면 불법 (iChar)에 대해 "심볼을 찾을 수 없습니다"라고 표시됩니다.JAVA : 메서드가 다른 메서드에서 값을 찾을 수 없습니다.
parseBinary에 더 많은 매개 변수를 추가 할 수 없습니다. 사용자는 0과 1 중 하나의 문자열 만 입력해야하기 때문에. 이 제한으로 인해이 메소드를 아무 것도 만들지 않았다면 궁금합니다. 그러나 이것이 내가 그것에 대해 알고있는 유일한 방법입니다. 나는 초보자이다. 모든/모든 도움은 매우 감사하겠습니다.
public static int parseBinary(String binary) throws NumberFormatException {
if (!isBinary(binary)) {
throw new NumberFormatException("Invalid Format for a Binary String - Illegal character: " + illegal(iChar));
}
int power = 0;
int decimal = 0;
for (int i = binary.length() - 1; i >= 0; i--) {
if (binary.charAt(i) == '1') {
decimal += Math.pow(2, power);
}
power++;
}
return decimal;
}
public static boolean isBinary(String binary) {
for (char ch : binary.toCharArray()) {
if (ch != '1' && ch != '0'){
return false;
}
}
return true;
}
public static char illegal(String iChar)
{
char test = 0;
char arr[] = iChar.toCharArray();
for(char cha : arr)
{
if (cha != '1' && cha != '0')
{
test = cha;
}
}
return test;
}
에 불법적 인 방법
변화가 바이너리 통과해야 대신
을하는 말했듯 iChar가 아닌. – Mureinik
그런 간단한 해결책. 나에게 그것을 지적 해 주셔서 감사합니다! –