Никак не могу пройти валидацию второго пункта. И не пойму, что именно не нравится валидатору, то ли перевод из двоичной системы в десятичную, то ли входные параметры в виде пустых строк.
Вариантов решения уже 4 штуки наштопал - все работают.
проверки входных параметров уже тоже все, что можно сдалел, тоже не помогает (изначально было ( if (binaryNumber == "") || (binaryNumber == null) ).
В чём же еще проблема может быть?
package com.javarush.task.pro.task09.task0906;
import java.util.regex.Pattern;
/*
Двоичный конвертер
*/
public class Solution {
public static void main(String[] args) {
int decimalNumber = 13; //Integer.MAX_VALUE;
System.out.println("Десятичное число " + decimalNumber + " равно двоичному числу " + toBinary(decimalNumber));
//int decimalNumber = 13; //в двоичной должно быть "1101"
//String binaryNumber = "";
String binaryNumber = "";
System.out.println("Двоичное число " + binaryNumber + " равно десятичному числу " + toDecimal(binaryNumber));
}
public static String toBinary(int decimalNumber) {
//напишите тут ваш код
String h2=("");
if (decimalNumber <= 0) return "";
else
{ while (decimalNumber != 0)
{
h2 = decimalNumber % 2 + h2;
decimalNumber = decimalNumber / 2;
}
return h2;
}
}
public static int toDecimal(String binaryNumber) {
//напишите тут ваш код
int h10 = 0;
char[] chArray = binaryNumber.toCharArray(); // Преобразуем строку в массив
int counter = 0; // проверка Если входящий параметр — пустая строка или null, то метод toDecimal(String) возвращает 0. Считаем пустые строки или нулевые
if (binaryNumber == null) counter = counter + 1;
System.out.println("Счётчик пустых строк и null (counter) = " + counter);
if (binaryNumber == "") counter = counter + 1;
System.out.println("Счётчик пустых строк и null (counter) = " + counter);
if (binaryNumber.equals("")) counter = counter + 1;
System.out.println("Счётчик пустых строк и null (counter) = " + counter);
if (binaryNumber.equals("null")) counter = counter + 1;
System.out.println("Счётчик пустых строк и null (counter) = " + counter);
if (binaryNumber == "null") counter = counter + 1;
System.out.println("Счётчик пустых строк и null (counter) = " + counter);
if (binaryNumber.isEmpty()) counter = counter + 1;
System.out.println("Счётчик пустых строк и null (counter) = " + counter);
if (binaryNumber.length() == 0) counter = counter + 1;
System.out.println("Счётчик пустых строк и null (counter) = " + counter);
if (counter > 0) return h10;
else
{
// Вариант 1
/* for (int i = 0; i < binaryNumber.length(); i++)
{
if (chArray[chArray.length-i-1] == '1') h10 = h10 + ((int) Math.pow(2, i));
}
return h10;*/
// Вариант 2
/* h10 = 0;
for (int i = 0; i < binaryNumber.length(); i++)
{
int charValue = 0;
if (binaryNumber.charAt((binaryNumber.length()-i-1)) == '1') charValue = 1;
else charValue = 0;
h10 = h10 + charValue*((int) Math.pow(2, i));
} */
// Вариант 3
/* h10 = 0;
int charValue;
for (int i = 0; i < binaryNumber.length(); i++)
{
charValue = Character.getNumericValue(binaryNumber.charAt(binaryNumber.length()-i-1));
h10 = h10 + charValue * (int) Math.pow(2, i);
}*/
// Вариант 4
h10 = 0;
int charValue;
for (int i = 0; i < binaryNumber.length(); i++)
{
charValue = (binaryNumber.charAt(binaryNumber.length()-1-i))=='0'?0:1;
h10 = h10 + charValue * (int) Math.pow(2, i);
}
return h10;
}
}
}