Задача:Ввод и вывод данных производятся через стандартные потоки ввода-вывода.
На планете Роботов очень не любят десятичную систему счисления, поэтому они попросили Вас написать программу, которая заменяет все встречающиеся в тексте числа на эти же числа, но в двоичной системе счисления.
Входные данные
Единственная строка, состоящая из любых символов. Длина строки не превышает 255 символов. Гарантируется, что во всех числах нет ведущих нулей.
Выходные данные
Выведите преобразованную строку.Пример ввода:
2+4
Пример вывода:
10+100Мой код: import java.util.Scanner;
class MyProgram{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String[] input = scan.nextLine().split("\\+");
StringBuilder binaryNumber = new StringBuilder();
for(int i = 0; i < input.length; i++){
String trash = "^&JKjdkdl;?.,lkPkkdfl";
int number = Integer.parseInt(input.replaceAll(trash, ""));
binaryNumber.append(Integer.toBinaryString(number));
if (i < input.length - 1) {
binaryNumber.append("+");
}
}
System.out.println(binaryNumber);
}
} Проблема:
Во втором тесте появляется исключение:Failed test #2 of 4. Runtime error
Error:
Exception in thread "main" java.lang.NumberFormatException: For input string: "6^&678JKjdkdl;?.,lk879Pk1kdfl4839"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at MyProgram.main(Main.java:10)Что именно вводиться в тесте - неизвестно, кроме первого теста(это из примера). Если правильно понял, это из-за попытки преобразовать строку "6^&678JKjdkdl;?.,lk879Pk1kdfl4839" в число. Я пробывал их просто удалить, но не получилось. Можете подсказать, что нужно сделать. Заранее всем благодарен.
На планете Роботов очень не любят десятичную систему счисления, поэтому они попросили Вас написать программу, которая заменяет все встречающиеся в тексте числа на эти же числа, но в двоичной системе счисления.
Входные данные
Единственная строка, состоящая из любых символов. Длина строки не превышает 255 символов. Гарантируется, что во всех числах нет ведущих нулей.
Выходные данные
Выведите преобразованную строку.Пример ввода:
2+4
Пример вывода:
10+100Мой код: import java.util.Scanner;
class MyProgram{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String[] input = scan.nextLine().split("\\+");
StringBuilder binaryNumber = new StringBuilder();
for(int i = 0; i < input.length; i++){
String trash = "^&JKjdkdl;?.,lkPkkdfl";
int number = Integer.parseInt(input.replaceAll(trash, ""));
binaryNumber.append(Integer.toBinaryString(number));
if (i < input.length - 1) {
binaryNumber.append("+");
}
}
System.out.println(binaryNumber);
}
} Проблема:
Во втором тесте появляется исключение:Failed test #2 of 4. Runtime error
Error:
Exception in thread "main" java.lang.NumberFormatException: For input string: "6^&678JKjdkdl;?.,lk879Pk1kdfl4839"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at MyProgram.main(Main.java:10)Что именно вводиться в тесте - неизвестно, кроме первого теста(это из примера). Если правильно понял, это из-за попытки преобразовать строку "6^&678JKjdkdl;?.,lk879Pk1kdfl4839" в число. Я пробывал их просто удалить, но не получилось. Можете подсказать, что нужно сделать. Заранее всем благодарен.