2016-01-10 2 views
-3

Привет, может кто-нибудь помочь мне найти внутри нулей, используя Java. , например:Найти внутри zeros в Java

вход: 1205700000 возвращение: 1 -> вы раздели замыкающие нули из -> 12057 = теперь есть только один ноль слева, который является ответом

вход: 1001 Возврат: 2 -> есть не последний ноль и есть 2 внутри нулей

вход: 1000 возврат: 0 не -> раздел отставая обнулить = 1 -> не равен нуля слева внутри так ответ 0

Ps. Есть ли встроенный для «зачистки» конечных нулей?

Спасибо = D

+1

Ключ использует целочисленное разделение и остаток – MBo

+0

1. Итак, для 102003 вы хотите получить 3, не так ли? 2. Можете ли вы добавить свой код? Я полагаю, что вы что-то пробовали ... 3. IntelliJ не является хорошим тегом. Вы можете использовать Notepad или vim. 4. Вы можете попробовать заменить завершающие нули (где ключевое слово «заменить»), а затем подсчитать другие нули. –

+2

Что вы пробовали и с чем вы столкнулись? Не зная, что вы сделали, нет способа угадать, что вам нужно знать, чтобы закончить это. –

ответ

1

Один из способов сделать это в Java 8,

String str = 
int longest = Stream.of(str.replaceAll("0+$", "").split("[^0]+")) 
        .mapToInt(String::length) 
        .max().getAsInt(); 

Это будет 0, если нет 0.

+0

Я думаю, что он хочет 'sum()' вместо 'max()' –

+0

Использование 'str.replaceAll (" [^ 0] + | 0 + $ "," ") .length' недостаточно для потоковой передачи? – greybeard

+0

@greybeard можно пропустить прочитанный вопрос. У меня самый большой блок нулей. Ваш ответ может быть правильным, поскольку он подсчитывает общее количество нулей, без конечных нулей. –

Смежные вопросы