Циклический сдвиг по кругу

Рассмотрим, линейный массив: По нему мы можем передвигаться вперед и назад, но не выходя за левую и правую границы. Данный массив можно закольцевать. Допустим, у нас есть массив, состоящий из элементов пронумерованных следующим образом: 0 1 2 3 4, мы находимся в позиции с индексом 3 и нам нужно сместиться на три позиции вправо. Наши
Читать далее…

Подписание SOAP-сообщения KALKAN-апплетом

Стандартный Калкан-апплет не позволяет подписывать SOAP-сообщения. Допустим, перед вами все-таки встала такая или подобная задача… Теоретически можно расширить апплет, добавив свой метод, но для этого нужно убрать родную подпись апплета и установить свою. Важно! Самоподписанный сертификат для подписания апплета не подойдет, нужен легально подписанный сертификат. Дальшейшая практическая инструкция подразумевает, что у вас есть легальный сертификат
Читать далее…

Реализуем FirstInHashMap на основе HashMap

Однажды мне понадобилась одна вещь, которая работает как стандартный HashMap, но за небольшим исключением. Как известно HashMap хранит пары вида Ключ-Значение (Key-Value), а значение можно извлечь по ключу. Если в HashMap добавляется значение и ключ уже существующий в HashMap, то старое значение заменяется новым. Но мне нужно было, наоборот, чтобы старое значение не затиралось, а
Читать далее…

Разбивка текста на блоки фиксированной длины

Допустим, перед нами стоит задача разбить текст на блоки фиксированной длины. Как пример можно взять строку: oxxxxooox и разбить на блоки по три символа: oxx xxo oox Это можно сделать следующим кодом: String text = «oxxxxooox»;//исходный текст int portion = 3;//размер блока int i = 0; while(i < text.length()){ System.out.println(text.substring(i,Math.min(i += portion, text.length()))); } Функция
Читать далее…

Дополнение числа ведущими нулями на Java

Всегда хотелось найти быстрый и короткий способ дополнить число ведущими нулями. Например, часто возникает необходимость вывести последовательность 1,2,3,…,10 в таком виде: 01,02,03,…,10. И сегодня я нашел здесь такой способ. Рассмотрим, этот способ на примере следующей задачи: выведем все числа от 1 до 100, дополнив числа до длины равной трем, т.е. 001,002,003,…,099,100. public class LeadingZero {
Читать далее…

Набор методов для маршалинга и анмаршалинга

При создании и обращении к веб-сервисам в большинстве случаем мы можем забыть и не знать о маршалинге и анмаршалинге (демаршалинге). Но бывают интеграции, где каким-то текстовым полем передается XML-ка. Вот тут нужно с одной стороны уметь делать маршалинг, а с другой анмаршалинг. Предлагаю набор методов для проведения данных операций: import javax.xml.bind.*; import java.io.File; import java.io.StringReader;
Читать далее…

Разрезка аудио по тишине с помощью Audacity

У меня был несжатый звуковой файл в формате wav, в котором были записаны слова и словосочетания, озвученные диктором. Между словами и словосочетаниями была выдержана пауза, которая была больше паузы между словами в словосочетаниях. Слов было порядка тысячи. И в итоге мне нужно было получить тысячу сжатых файлов в формате mp3. Программа Audacity выполнила эту задачу
Читать далее…

Удаленный дебаг в IntelliJ IDEA (на примере JBoss EAP)

Использование локальной или удаленной отладки может очень помочь и сэкономить время. По умолчанию удаленная отладка в JBoss отключена, для ее активации нужно внести изменения в конфигурационный файл %EAP_HOME%/bin/standalone.conf. Найдите и раскомментируйте следующую строку: JAVA_OPTS=»$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n» Видно, что мы задействовали порт 8787. Перегрузите JBoss Осталось настроить IDEA Зайдите в меню Run и выберите пункт Edit configurations…:
Читать далее…

Поиск по содержимому файлов в Linux

Редко пользуюсь поиском по содержимому файлов, но иногда метко как он нужен… Варианты использования Поиск номера телефона во всех xml-файлах grep 77051810084 *.xml Поиск слова «kesh» во всех файлах grep kesh *.* Поиск словосочетания grep «Hello World» *.* Поиск по регулярному выражению grep -e «^k.*esh$» *.*

Правильная разбивка строки функцией split (Java)

Часто при парсинге данных мы разбиваем строку по разделителю. Один из способов — это использование функции split(regex), где regex — это регулярное выражение. Разобъем следующую строку на части: Java World|0123456|false Очень часто разделителем выступает вертикальная черта |, т.к. в функция split принимает регулярное выражение, а символ | (pipe) используется в регулярных выражениях для задания условия
Читать далее…