Осваиваем методы класса Integer

Используя метод Integer.parseInt(String, int) реализуй логику метода convertToDecimalSystem, который должен переводить переданную строку в десятичное число и возвращать его в виде строки.

public class Solution {

        public static void main(String[] args) {
            System.out.println(convertToDecimalSystem("0x16")); //22
            System.out.println(convertToDecimalSystem("012"));  //10
            System.out.println(convertToDecimalSystem("0b10")); //2
            System.out.println(convertToDecimalSystem("62"));   //62
        }

        public static String convertToDecimalSystem(String s) {
            if (s.startsWith("0x")) {
                String s1 = s.replace("0x", "");
                return String.valueOf(Integer.parseInt(s1, 16));
            } else if (s.startsWith("0b")) {
                String s1 = s.replace("0b", "");
                return String.valueOf(Integer.parseInt(s1, 2));
            } else if (s.startsWith("0")) {
                String s1 = s.replace("0", "");
                return String.valueOf(Integer.parseInt(s1, 8));
            } else {
                return s;
            }
        }
    }

Принимать не хочет, тесты проходит, решение ОДНО ИЗ, есть с выдергиванием подстроки, тоже не принимает, есть с переводом сначала в 10 систему, а потом в ту, которую необходимо, не принимает.

задан 20 Фев, 23:26

bat009's gravatar image

bat009
855
одобрено: 32%


При переводе в 8-ую систему 0 заменять/вырезать не нужно.

ссылка

опубликован 24 Фев, 04:20

wrell's gravatar image

wrell
352
одобрено: 0%

И это правильный ответ!

(20 Мар, 21:42) Kirilo

Очередная бестолково составленная задача. Я скоро начну делать куклы вуду и втыкать в них иголки. Уже зла не хватает на этих всяких "состовляльщиков" В одних задачах валидатор требует точности, здесь же он более точный вариант не принимает, причем ссылается на то, что мол ты не применил метод, который на самом деле участвует в решении

Полноценноре решение должно учитывать, что:
1. входящий строковой параметр может быть начинаться с "-". Число может быть отрицательным!
2. регистр букв в представлении чисел может быть разным: например hex можно записать 0x... или OX, двоичное число можно записать 0b... или OB и т.д.
3. Числа могут быть с лидирующими нулями, а могут и без.

Но это всё не учтено. Валидатор хочет примитивное полурешение, без учета вариантов представления числа. Это всё, если учитывать варианты, должно решаться с помощью regex и проверки того, являются ли строки числами различных систем исчисления давно уже описаны в "Регулярные выражения. Сборник рецептов".

Вобщем я искренне желаю, чтобы в жизни "составляльщикам" всегда приходили такие же по качеству задачи, и чтобы они тратили своё время. Как же хочется вставить брань нецензурную.

ссылка

опубликован 03 Апр, 09:26

Core's gravatar image

Core
436
одобрено: 17%

изменено 03 Апр, 09:28

Ваш ответ
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×7

Задан: 20 Фев, 23:26

Просмотров: 126 раз

Отредактирован: 03 Апр, 09:28