Помогите с задачей java - Вопросы по Java
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Помогите с задачей java

Регистрация
27 Ноя 2013
Сообщения
70
Репутация
0
Спасибо
0
Монет
0
Задача:Ввод и вывод данных производятся через стандартные потоки ввода-вывода.

На планете Роботов очень не любят десятичную систему счисления, поэтому они попросили Вас написать программу, которая заменяет все встречающиеся в тексте числа на эти же числа, но в двоичной системе счисления.

Входные данные

Единственная строка, состоящая из любых символов. Длина строки не превышает 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 &#34;main&#34; java.lang.NumberFormatException: For input string: &#34;6^&amp;678JKjdkdl;?.,lk879Pk1kdfl4839&#34;

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)Что именно вводиться в тесте - неизвестно, кроме первого теста(это из примера). Если правильно понял, это из-за попытки преобразовать строку &#34;6^&amp;678JKjdkdl;?.,lk879Pk1kdfl4839&#34; в число. Я пробывал их просто удалить, но не получилось. Можете подсказать, что нужно сделать. Заранее всем благодарен.
 
Регистрация
11 Сен 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
что такое вот это?
String trash = &#34;^&amp;JKjdkdl;?.,lkPkkdfl&#34;;
 
Регистрация
24 Авг 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
public static void main(String[] args) {


Scanner input = new Scanner(System.in);
String s = input.nextLine();
Pattern regex = Pattern.compile("[0-9]+");
Matcher matcher = regex.matcher(s);
StringBuffer stringBuffer = new StringBuffer();

while(matcher.find()){
matcher.appendReplacement(stringBuffer,Integer.toBinaryString(Integer.parseInt(matcher.group())));
}
matcher.appendTail(stringBuffer);
System.out.println(stringBuffer);

}
}
 
Регистрация
27 Сен 2013
Сообщения
63
Репутация
0
Спасибо
0
Монет
0
Программа не должна кидать исключение при некорректно сформированной строке. Ловите и выводите ошибку.
 
Регистрация
30 Окт 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Интересно, но было бы в принципе неплохо изучить язык программирования C++
 
Сверху Снизу