Это настраиваемое решение, позволяющее использовать одиночные символьные литеральные разделители в Java:
public static List<String> getBalancedSubstrings(String s, Character markStart,
Character markEnd, Boolean includeMarkers)
{
List<String> subTreeList = new ArrayList<String>();
int level = 0;
int lastOpenDelimiter = -1;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == markStart) {
level++;
if (level == 1) {
lastOpenDelimiter = (includeMarkers ? i : i + 1);
}
}
else if (c == markEnd) {
if (level == 1) {
subTreeList.add(s.substring(lastOpenDelimiter, (includeMarkers ? i + 1 : i)));
}
if (level > 0) level--;
}
}
return subTreeList;
}
}
Использование образца:
String s = "some text(text here(possible text)text(possible text(more text)))end text";
List<String> balanced = getBalancedSubstrings(s, '(', ')', true);
System.out.println("Balanced substrings:\n" + balanced);
// => [(text here(possible text)text(possible text(more text)))]
Развертывание в AWS - это очень широкая тема, включающая ASG и Loadbalancing для высокой доступности, масштабируемости и отказоустойчивости. Дженкинс / Терраформ / Докер / Упаковщик для CICD.
Но просто чтобы ответить на ваш вопрос, используйте функцию «Данные пользователя» экземпляра Ec2 и укажите команду, которую вы хотите выполнить. Упоминание команды в пользовательских данных обеспечит выполнение команды при запуске Ec2.
Например,
java -cp /home/ec2-user/App.jar com.test.MySampleClass
Предположение: App.jar уже доступен в экземпляре Ec2.
Если это веб-приложение, вы можете развернуть его на Tomcat. Снова используйте функцию данных пользователя Ec2 и упомяните набор команд для загрузки tomcat и запуска его.