Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[98.82.140.17] |
|
Сообщ.
#1
,
|
|
|
Дорое время суток)
Как быстро узнать что в строке одни нули? В delphi так function TestStringsForZeros(const Source: string): Boolean; begin Result:= Source = StringOfChar('0', Length(Source)); end; В python так def TestStringsForZeros(s): return s == '0'*len(s) Вопрос: "Каким будет "данный код" в java или эквивалентный ему?" Заранее спасибо. |
Сообщ.
#2
,
|
|
|
return string.chars().allMatch(symbol -> symbol == '0'); |
Сообщ.
#3
,
|
|
|
>В delphi так
Двойная работа, чтобы "быстро узнать" ???? |
Сообщ.
#4
,
|
|
|
Цитата RusSun @ Дорое время суток) Как быстро узнать что в строке одни нули? Скрытый текст В delphi так function TestStringsForZeros(const Source: string): Boolean; begin Result:= Source = StringOfChar('0', Length(Source)); end; В python так def TestStringsForZeros(s): return s == '0'*len(s) Вопрос: "Каким будет "данный код" в java или эквивалентный ему?" Заранее спасибо. ну так можно также по типу того что ты написал сделать и на жаве |
Сообщ.
#5
,
|
|
|
Integer.parseInt("....") == 0 Добавлено ну или через valueOf |
Сообщ.
#6
,
|
|
|
ТС хотел знать можно ли как в питоне или Делфи, вроде в жаве нет функции типа StringOfChar?
|
Сообщ.
#7
,
|
|
|
Цитата Serafim @ Integer.parseInt("....") == 0 Добавлено ну или через valueOf А если в строке Кстати, а если входная строка - пустая (""), ответ должен быть true или false? |
Сообщ.
#8
,
|
|
|
Цитата wind @ return string.chars().allMatch(symbol -> symbol == '0'); При пустой строке тоже вернет true. |
Сообщ.
#9
,
|
|
|
Судя по всему, ТС любитель
Хм, не знаю зачем я это делаю, но набросаю пару рабочих примеров в духе ТС на яве: boolean TestStringsForZeros(String str) { return str.length()==Strings.count(str, '0'); } boolean TestStringsForZeros(String str) { return str.equals(Strings.pad('0', str.length())); } И да, попрошу заметить, я НЕ рекомендую их где либо применять Добавлено Цитата Cfon @ вроде в жаве нет функции типа StringOfChar? Всё там есть) |
Сообщ.
#10
,
|
|
|
Цитата VisualProg @ А какое стандартное? Может в цикле искать нулевой символ? |
Сообщ.
#11
,
|
|
|
Cfon
Приведённые решения по сути: Мы хотим узнать, кончилась ли водка. Для этого мы пересчитываем бутылки в ящике. Приобретаем новый ящик такой же емкости. Заполняем его заведомо пустыми бутылками в том же количестве. Теперь сравниваем, что каждая бутылка из первого такая же, как и соответствующая бутылка во втором. |
Сообщ.
#12
,
|
|
|
Цитата MBo @ Мда не оптимально, тогда лучше таки вцикле искать нулевой символ |
Сообщ.
#13
,
|
|
|
справедливости ради, попрошу заметить, что первый предложенный вариант:
boolean TestStringsForZeros(String str) { return str.length()==Strings.count(str, '0'); } не создаёт нового ящика, а считает пустые бутылки, и сравнивает их с общим числом бутылок в ящике, но, не факт что это правильное решение. Если вдаваться в детали и гнаться за скоростью: http://grepcode.com/file/repository.grepco....hashCode%28%29 В этой конечной сумме ряда val[off++], для нашего случая, всегда равен фиксированному числу. Чисто теоретически, можно собрать формулу для эквивалентного хешкода строки из n одинаковых символов. Ну, это ИМХО, сам не пробовал, но, с большой долей вероятности, будет работать как надо. (хотя, в первый расчёт хеша, скорость будет ещё хуже чем при проходе в цикле, но, в яве хешкод объёкта считать придётся в подавляющем большинстве случаев, если не отказываться от коллекций или сортировок) |
Сообщ.
#14
,
|
|
|
if ($foo =~ /^0+$/) { print "only zeros"; } |
Сообщ.
#15
,
|
|
|
Хм... но, в яве нет таких операторов и команд
|
Сообщ.
#16
,
|
|
|
Тьху чорд, тут жеж жабисты
|
Сообщ.
#17
,
|
|
|
Цитата Астарот @ При пустой строке тоже вернет true. Фикс очевиден. |