SirEdvin 2 037 Опубликовано: 25 апреля 2016 (изменено) Код писался с учётом сбора статистики. И насчет пробелов, вы забыли что это чат minecraft, тут не может быть других символов, так зачем мне делать их удаление, если их нет? Если учитывать, что это чат майнкрафта и быть уверенным в том, что Андрей никогда не добавит UnicodeFix или подобную хрень, почему бы не делать вообще так: int letterCount = 0; int bigLetterCount = 0; int length = r.length(); for (int i = 0;i < length; i++){ int charAt = r.codePointAt(i); if ((charAt >= 1024 && charAt <= 1071) || (charAt >= 65 && charAt <= 90)){ bigLetterCount++; letterCount++; } else if ((charAt >= 1072 && charAt <= 1119) || (charAt >= 97 && charAt <= 122)) { letterCount++; } } System.out.printf("%d %d -> %d", bigLetterCount, letterCount, length); Таблица символов для проверки кодов - http://foxtools.ru/Unicode Изменено 25 апреля 2016 пользователем SirEdivn Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 25 апреля 2016 @SirEdivn, был бы там utf-8... (: 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 25 апреля 2016 @SirEdivn, был бы там utf-8... (: Java таки использует unicode в символах Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 25 апреля 2016 Java таки использует unicode в символах @SirEdivn, мб utf-32 она использует? И с 2 циклами я переборщил. Следуя твоему последнему примеру, можно было бы запилить все в 1, и крутить полностью, все равно нужно считать все буквы. Я тут подредактировал: https://redserver.su/forum/topic/23790-moderator-profion/?p=11296899 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 25 апреля 2016 @SirEdivn, мб utf-32 она использует? Ноуп, utf8. Ну ... почти uft8. У java в char влазит целых два байта, что вмешает в себе почти все символы юникода, кроме трех-байтных. Их оно складывает из двух. + тут используется функция codePoint, которая возвращает юникод код в int) Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 25 апреля 2016 Ноуп, utf8. Ну ... почти uft8. У java в char влазит целых два байта, что вмешает в себе почти все символы юникода, кроме трех-байтных. Их оно складывает из двух. + тут используется функция codePoint, которая возвращает юникод код в int) @SirEdivn, тогда это utf-16. Не нужно объяснять мне его работу, я знаю это во всех подробностях, ведь нужно было как-то писать конвектор из utf-8 в utf-32 и обратно. std::string utf32to8(const std::u32string &_str) { std::string tmp_str; for(size_t i = 0UL; i < _str.length(); ++i) { /* if(_str[i] < 00000001 00000000) */ if(_str[i] < 0x100) { tmp_str.push_back((char)_str[i]); } /* if(_str[i] < 00001000 00000000) */ else if(_str[i] < 0x800) { /* последовательность 110XXXXX 10XXXXXX */ tmp_str.push_back((char)(((_str[i] & 0x7C0) >> 6 ) | 0xC0)); // tmp_str.push_back((char)(((_str[i] & 00000111 11000000) >> 6 ) | 11000000)) tmp_str.push_back((char)((_str[i] & 0x3F) | 0x80)); // tmp_str.push_back((char)((_str[i] & 00111111) | 10000000)) } /* if(_str[i] < 00000001 00000000 00000000) */ else if(_str[i] < 0x10000) { /* последовательность 1110XXXX 10XXXXXX 10XXXXXX */ tmp_str.push_back((char)(((_str[i] & 0xF000) >> 12 ) | 0xE0)); // tmp_str.push_back((char)(((_str[i] & 11110000 00000000) >> 12 ) | 11100000)) tmp_str.push_back((char)(((_str[i] & 0xFC0) >> 6 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00001111 11000000) >> 6 ) | 10000000)) tmp_str.push_back((char)((_str[i] & 0x3F) | 0x80)); // tmp_str.push_back((char)((_str[i] & 00111111) | 10000000)) } /* if(_str[i] < 00100000 00000000 00000000) */ else if(_str[i] < 0x200000) { /* последовательность 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX */ tmp_str.push_back((char)(((_str[i] & 0x1C0000) >> 18 ) | 0xF0)); // tmp_str.push_back((char)(((_str[i] & 00011100 00000000 00000000) >> 18 ) | 11110000)) tmp_str.push_back((char)(((_str[i] & 0x3F000) >> 12 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00000011 11110000 00000000) >> 12 ) | 10000000)) tmp_str.push_back((char)(((_str[i] & 0xFC0) >> 6 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00000000 00001111 11000000) >> 6 ) | 10000000)) tmp_str.push_back((char)((_str[i] & 0x3F) | 0x80)); // tmp_str.push_back((char)((_str[i] & 00111111) | 10000000)) } /* if(_str[i] < 00000100 00000000 00000000 00000000) */ else if(_str[i] < 0x4000000) { /* последовательность 111110XX 10XXXXXX 10XXXXXX 10XXXXXX 10XXXXXX */ tmp_str.push_back((char)(((_str[i] & 0x3000000) >> 24 ) | 0xF8)); // tmp_str.push_back((char)(((_str[i] & 00000011 00000000 00000000 00000000) >> 24 ) | 11111000)) tmp_str.push_back((char)(((_str[i] & 0xFC0000) >> 18 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00000000 11111100 00000000 00000000) >> 18 ) | 10000000)) tmp_str.push_back((char)(((_str[i] & 0x3F000) >> 12 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00000100 00000011 11110000 00000000) >> 12 ) | 10000000)) tmp_str.push_back((char)(((_str[i] & 0xFC0) >> 6 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00000100 00000000 00001111 11000000) >> 6 ) | 10000000)) tmp_str.push_back((char)((_str[i] & 0x3F) | 0x80)); // tmp_str.push_back((char)((_str[i] & 00111111) | 10000000)) } /* if(_str[i] < 10000000 00000000 00000000 00000000) */ else if(_str[i] < 0x80000000) { /* последовательность 1111110X 10XXXXXX 10XXXXXX 10XXXXXX 10XXXXXX 10XXXXXX */ tmp_str.push_back((char)(((_str[i] & 0x40000000) >> 30 ) | 0xFC)); // tmp_str.push_back((char)(((_str[i] & 01000000 00000000 00000000 00000000) >> 30 ) | 11111100)) tmp_str.push_back((char)(((_str[i] & 0x3F000000) >> 24 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00111111 00000000 00000000 00000000) >> 24 ) | 10000000)) tmp_str.push_back((char)(((_str[i] & 0xFC0000) >> 18 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00000000 11111100 00000000 00000000) >> 18 ) | 10000000)) tmp_str.push_back((char)(((_str[i] & 0x3F000) >> 12 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00000100 00000011 11110000 00000000) >> 12 ) | 10000000)) tmp_str.push_back((char)(((_str[i] & 0xFC0) >> 6 ) | 0x80)); // tmp_str.push_back((char)(((_str[i] & 00000100 00000000 00001111 11000000) >> 6 ) | 10000000)) tmp_str.push_back((char)((_str[i] & 0x3F) | 0x80)); // tmp_str.push_back((char)((_str[i] & 00111111) | 10000000)) } else tmp_str.push_back('?'); } return tmp_str; } /** * @brief склеивает циферки в буковку * @param _str utf8 * @[member='returne'] utf32 */ std::u32string utf8to32(const std::string &_str) { std::u32string tmp_str; char32_t tmp_char; for(size_t pos = 0UL; pos < _str.length(); ++pos) { /* if(11111100 == (_str[i] & 11111110)) */ if(0xFC == (_str[pos] & 0xFE)) { tmp_char = _str[pos] & 0x1; // _str[pos] & 0000 0001 tmp_char <<= 6; tmp_char |= _str[pos + 1] & 0x3F; // tmp_char |= _str[pos + 1] & 00111111 tmp_char <<= 6; tmp_char |= _str[pos + 2] & 0x3F; tmp_char <<= 6; tmp_char |= _str[pos + 3] & 0x3F; tmp_char <<= 6; tmp_char |= _str[pos + 4] & 0x3F; tmp_char <<= 6; tmp_char |= _str[pos + 5] & 0x3F; tmp_str.push_back(tmp_char); pos += 5; } /* if(11111000 == (_str[i] & 11111100)) */ else if(0xF8 == (_str[pos] & 0xFC)) { tmp_char = _str[pos] & 0x3; // _str[pos] & 00000011 tmp_char <<= 6; tmp_char |= _str[pos + 1] & 0x3F; tmp_char <<= 6; tmp_char |= _str[pos + 2] & 0x3F; tmp_char <<= 6; tmp_char |= _str[pos + 3] & 0x3F; tmp_char <<= 6; tmp_char |= _str[pos + 4] & 0x3F; tmp_str.push_back(tmp_char); pos += 4; } /* if(11110000 == (_str[i] & 1111100)) */ else if(0xF0 == (_str[pos] & 0xF8)) { tmp_char = _str[pos] & 0x7; // _str[pos] & 00000111 tmp_char <<= 6; tmp_char |= _str[pos + 1] & 0x3F; tmp_char <<= 6; tmp_char |= _str[pos + 2] & 0x3F; tmp_char <<= 6; tmp_char |= _str[pos + 3] & 0x3F; tmp_str.push_back(tmp_char); pos += 3; } /* if(11100000 == (_str[i] & 11110000)) */ else if(0xE0 == (_str[pos] & 0xF0)) { tmp_char = _str[pos] & 0xF; // _str[pos] & 00001111 tmp_char <<= 6; tmp_char |= _str[pos + 1] & 0x3F; tmp_char <<= 6; tmp_char |= _str[pos + 2] & 0x3F; tmp_str.push_back(tmp_char); pos += 2; } /* if(11000000 == (_str[i] & 11100000)) */ else if(0xC0 == (_str[pos] & 0xE0)) { tmp_char = _str[pos] & 0x1F; // _str[pos] & 00011111 tmp_char <<= 6; tmp_char |= _str[pos + 1] & 0x3F; tmp_str.push_back(tmp_char); ++pos; } /* if(00000000 == (_str[i] & 10000000)) */ else if(0x0 == (_str[pos] & 0x80)) tmp_str.push_back(_str[pos]); } return tmp_str; } И да, UTF-16 бредовая кодировка, как говорится "ни рыба ни мясо". 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 25 апреля 2016 Почему люди так сильно верят в новомодную херню от маркетологов типа докера? Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 25 апреля 2016 @SirEdivn, ты о чем вообще? 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 25 апреля 2016 @SirEdivn, ты о чем вообще? https://www.docker.com/ Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 25 апреля 2016 в новомодную херню Т.е. ты про виртуализацию в общем? Часто приходится "слышать" про всякие виртуализации, но я как-то всегда игнорировал это. Сейчас вкратце почитал суть виртуализации приложений, и на мой взгляд этот гемор имеет мало смысла, только систему тормозить. 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 25 апреля 2016 Т.е. ты про виртуализацию в общем? Часто приходится "слышать" про всякие виртуализации, но я как-то всегда игнорировал это. Сейчас вкратце почитал суть виртуализации приложений, и на мой взгляд этот гемор имеет мало смысла, только систему тормозить. Это веселее виртуализации. Это такая крутая надстройка над chroot. На самом деле, это безумно удобное решение в случаях, когда тебе, скажем, нужно хостить два приложения с разными наборами библиотек. Но теперь его пихают везде. "@_WaRLoCK_" От того что у тебя бомбит, никто скоро ничего решать не будет, тем более на публику. Если этот вопрос и будет решатся, то явно ответ в теме даватся не будет, так что не стоит звать в тему Андрея. p.s. я ничего против не имею против всех кто тут описывали в теме, но все же, Андрей не слепой, и уже видел эту тему, раз не отписался, значит решит вопрос по своему усмотрению, и потому я прошу @ закрыть тему, дабы в теме больше не было флуда Андрей иногда скажем ... забывает про темы Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
Cassiopeia 88 Опубликовано: 25 апреля 2016 (изменено) Ха-ха-ха И у тебя, по-твоему, диск фигня? Красава)0 Изменено 25 апреля 2016 пользователем The_Destroyer Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 25 апреля 2016 @, вот у меня точно такой же проц., E8500. Правда я ему на смену i7 купил, а тот просто теперь стоит в старом системном блоке без дела. Он у тебя сильно греется? @SirEdivn, ну в таких случаях если только, но не думаю что такие программы встречаются часто. 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 25 апреля 2016 (изменено) @SirEdivn, ну в таких случаях если только, но не думаю что такие программы встречаются часто. Minecraft сервер круто деплоить так Особенно если держишь несколько одинаковых. Но мне до этого далеко, я по старинке через гит Изменено 25 апреля 2016 пользователем SirEdivn Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
Cassiopeia 88 Опубликовано: 26 апреля 2016 @, вот у меня точно такой же проц., E8500. Правда я ему на смену i7 купил, а тот просто теперь стоит в старом системном блоке без дела. Он у тебя сильно греется? @SirEdivn, ну в таких случаях если только, но не думаю что такие программы встречаются ча У меня с ним проблем нету,не лагает.Греется много,это правда... Поделиться сообщением Ссылка на сообщение