02
Апр
2021

Отбросить нули слева

Предполагается что этот метод будет отбрасывть нули слева от числа,

на вход получили 000101 на выходе 101

Что происходит на деле: на вход 000101 на выходе 65 WTF?? Еще пара примеров входа/выхода

0001024 532

0002020 1040

00020101 8257

public String divideWithFix(Integer dividend, Integer divisor) {
        String dividendStr = dividend.toString();
        {
            StringBuilder sbDividend = new StringBuilder(dividendStr);
            char cha = '0';
            for (int i = 0; i<dividendStr.length(); i++) {
                if (dividendStr.charAt(i) == cha) {
                    sbDividend.deleteCharAt(i);
                    System.out.println(dividendStr); //TODO
                    System.out.println(sbDividend.toString()); //TODO
                }
                dividendStr = sbDividend.toString();
                break;
            }
        }
        String divisorStr = divisor.toString();
        {
            StringBuilder sbDivisor = new StringBuilder(divisorStr);
            char cha = '0';
            for (int i = 1; i<divisorStr.length(); i++) {
                if (divisorStr.charAt(i) == cha) {
                    sbDivisor.deleteCharAt(i);
                }
                divisorStr = sbDivisor.toString();
                break;
            }
        }
        int fixedDividend = Integer.parseInt(dividendStr);
        int fixedDivisor = Integer.parseInt(divisorStr);
        System.out.println(fixedDividend); //TODO
        System.out.println(fixedDivisor); //TODO
        String result = makeDivision(fixedDividend, fixedDivisor);
        return result;
    }

Источник: https://ru.stackoverflow.com/questions/1265024/%D0%9E%D1%82%D0%B1%D1%80%D0%BE%D1%81%D0%B8%D1%82%D1%8C-%D0%BD%D1%83%D0%BB%D0%B8-%D1%81%D0%BB%D0%B5%D0%B2%D0%B0

Тебе может это понравится...

Добавить комментарий