Как стать автором
Обновить
-2
0

Пользователь

Отправить сообщение

Ну даже с учетом таких вариантов можно было написать намного короче и логичней, например так:

	public static boolean parseBoolean(String s)
	{
		if (s.equalsIgnoreCase("true") || s.equalsIgnoreCase("yes") || s.equalsIgnoreCase("on") || s.equalsIgnoreCase("y") || s.equals("1"))
			return true;
		else if (s.equalsIgnoreCase("false") || s.equalsIgnoreCase("no") || s.equalsIgnoreCase("off") || s.equalsIgnoreCase("n") || s.equals("0"))
			return false;

		throw new IllegalArgumentException("For input string: \"" + s + "\"");
	}

Даже если такое будет работать чуть медленнее чем тот код - в том месте где это использовалось это вобще не критично.

Тот код, что я приводил примером ранее, если что взят из одной из веток java-эмулятора Lineage II. Ну и да там с качеством кода зачастую все достаточно печально, т.к. в процессе развития исходники зачастую проходят через множество людей, с разной степенью кривизны рук и каждый пишет так как видит "лучше".

Так вот в том то и дело что тот же стандартный метод Boolean.valueOf(String s) как раз так и проверяет, просто как

return s.equalsIgnoreCase("true");

т.е. просто и лаконично и этого бы хватило за глаза.
К чему было городить то извращение, что я выше привел - я так и не понял.
Метод если что использовался чисто для распарса булевых параметров из конфигурационных файлов и при этом там в качестве значений используются только true/false, но никак не 1/0, on/off и т.п.

Пфф... а как вам такое? Я в свое время когда на это наткнулся в исходниках, в процессе правок кода - долго думал...

	public static boolean parseBoolean(final String s)
	{
		switch(s.length())
		{
			case 1:
			{
				final char ch0 = s.charAt(0);
				if(ch0 == 'y' || ch0 == 'Y' || ch0 == '1')
					return true;

				if(ch0 == 'n' || ch0 == 'N' || ch0 == '0')
					return false;

				break;
			}
			case 2:
			{
				final char ch0 = s.charAt(0);
				final char ch1 = s.charAt(1);
				if((ch0 == 'o' || ch0 == 'O') && (ch1 == 'n' || ch1 == 'N'))
					return true;

				if((ch0 == 'n' || ch0 == 'N') && (ch1 == 'o' || ch1 == 'O'))
					return false;

				break;
			}
			case 3:
			{
				final char ch0 = s.charAt(0);
				final char ch1 = s.charAt(1);
				final char ch2 = s.charAt(2);
				if((ch0 == 'y' || ch0 == 'Y') && (ch1 == 'e' || ch1 == 'E') && (ch2 == 's' || ch2 == 'S'))
					return true;

				if((ch0 == 'o' || ch0 == 'O') && (ch1 == 'f' || ch1 == 'F') && (ch2 == 'f' || ch2 == 'F'))
					return false;

				break;
			}
			case 4:
			{
				final char ch0 = s.charAt(0);
				final char ch1 = s.charAt(1);
				final char ch2 = s.charAt(2);
				final char ch3 = s.charAt(3);
				if((ch0 == 't' || ch0 == 'T') && (ch1 == 'r' || ch1 == 'R') && (ch2 == 'u' || ch2 == 'U') && (ch3 == 'e' || ch3 == 'E'))
					return true;

				break;
			}
			case 5:
				final char ch0 = s.charAt(0);
				final char ch1 = s.charAt(1);
				final char ch2 = s.charAt(2);
				final char ch3 = s.charAt(3);
				final char ch4 = s.charAt(4);
				if((ch0 == 'f' || ch0 == 'F') && (ch1 == 'a' || ch1 == 'A') && (ch2 == 'l' || ch2 == 'L') && (ch3 == 's' || ch3 == 'S') && (ch4 == 'e' || ch4 == 'E'))
					return false;

				break;
		}

		throw new IllegalArgumentException("For input string: \"" + s + '"');
	}

Притом сканирует очень тупым образом - добавляя после первого сканирования в список "проверять эти папки потом периодически" все папки в названиях которых находит ключевые слова типа "game", "steam", "origin" и т.п.

Тоже дом.ру - нормально открываются оба адреса.

Может от города еще зависит конечно.

А если названивают не из России, то как их накажешь то?

Вот тоже интересно, что же за такая 1070 то? Ибо помнится я тоже где-то в 2017/2018 покупал свою 1070Ti (Asus Cerberus) и то она мне обошлась тогда в 40к.

Насколько я в курсе, эта школа, вроде как несмотря на свое громкое название, никак с самим телецентром Останкино не связана.

Я так еще SWAG'и помню.

До сих пор где-то на винте лежат архивы с ними, с разной документацией, примерами и т.п. для Pascal, на котором я тогда писал...

Так вроде все (или почти все) соц сети и т.п. делают - ибо проще и быстрее промаркировать контент удаленным, чем физически его сразу же удалять с сервера.

Ну справедливости ради, насчет Аллодов - у них два типа серверов, один именно что f2p (p2w), а второй - подписочный, с абоненткой и без доната влияющего на статы и т.п.

И сейчас кстати как раз новые подписочные и открывают для новых игроков.

Планшет от Huawei, еще на 7 андроиде - тоже такое есть, скорее всего просто функционал на уровне оболочки EMUI.

Из этих 500кк наверное большинство тех, кто чисто халявные игры собирает, но ничего в самом EGS не покупает :)

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

Как КДПВ поставлена Мику и при этом в статье ни слова про вокалоидов...

А, ну я сам просто до сих пор пользуюсь classic-версией, которая имеется только для windows.

Судя по скринам, делалось для винды?

Тогда, вместо изобретения велосипеда, вполне можно было просто воспользоваться к примеру xnview, позволяющим делать кучу разных действий над целыми папками с изображениями, притом разом можно делать целую цепочку действий над каждым файлом - то же самое изменение размера, инвертирование цветов, наложение фильтров и т.д. и т.п.

Я ведь правильно понимаю, что оригинальную головоломку все же не решили? А решили ее модификацию, добавив условия, которые позволили ее решить.

Но речь то о США шла. Или Филадельфия внезапно уже в Европу переехала? :)

И крышки от бутылок

Кстати в 1.2.х вроде как оная фича тоже работает, но только если юзать для логов JMSAppender.

З.Ы. Сам тоже все еще на первой ветке сижу. В целом то не проблема перейти на вторую или на logback, т.к. для работы с логами используется прослойка в виде slf4j и переход на другую библиотеку логгирования особо ничего переделывать не потребует, но просто пока все работает по принципу "работает? значит не трогай" :) тем более ничего в логгер такого не идет, куда бы могло попасть что-то передаваемое пользователями.

Информация

В рейтинге
4 912-й
Откуда
Пермь, Пермский край, Россия
Дата рождения
Зарегистрирован
Активность