X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=svjatoslav_commons.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fstring%2FString2.java;h=07e3fdb83ccc81d366ab0734121fe475c85adb22;hp=2e9446a5fc3edf67c153d0e68a9f5a6055f9a51a;hb=b1ffc7025cc976821987469570f07a7298ea16c9;hpb=c8c84ff3c00094e9e87313753b659934f4d4ae72 diff --git a/src/main/java/eu/svjatoslav/commons/string/String2.java b/src/main/java/eu/svjatoslav/commons/string/String2.java index 2e9446a..07e3fdb 100755 --- a/src/main/java/eu/svjatoslav/commons/string/String2.java +++ b/src/main/java/eu/svjatoslav/commons/string/String2.java @@ -1,28 +1,32 @@ /* - * Svjatoslav Commons - shared library of common functionality. - * Copyright ©2012-2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 3 of the GNU Lesser General Public License - * or later as published by the Free Software Foundation. + * Svjatoslav Commons - shared library of common functionality. Author: Svjatoslav Agejenko. + * This project is released under Creative Commons Zero (CC0) license. */ - package eu.svjatoslav.commons.string; import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class String2 { - private final List chars; + private final List chars = new ArrayList<>(); public String2(String value) { - if (value == null) - value = ""; + addSuffix(value); + } - chars = new ArrayList<>(value.length()); - for (final Character c : value.toCharArray()) - chars.add(c); + public String2() { + } + + public String2 repeat(int count){ + String value = toString(); + + for (int i = 1; i < count; i++) { + addSuffix(value); + } + return this; } public String2 addPrefix(final String prefix) { @@ -54,6 +58,13 @@ public class String2 { return this; } + + public String2 addSuffix(String s, int times) { + for (int i = 0; i < times; i++) addSuffix(s); + return this; + } + + /** * Cut given amount of characters from the left of the string. * @@ -72,7 +83,7 @@ public class String2 { return this; } - public String2 trimPrefixIfExists(String prefix){ + public String2 trimPrefixIfExists(String prefix) { if (prefix == null) return this; @@ -82,7 +93,7 @@ public class String2 { return this; } - public String2 trimSuffixIfExists(String suffix){ + public String2 trimSuffixIfExists(String suffix) { if (hasSuffix(suffix)) trimSuffix(suffix.length()); @@ -91,13 +102,13 @@ public class String2 { public String2 trimSuffix(int charsToTrim) { - if (charsToTrim > chars.size()){ + if (charsToTrim > chars.size()) { chars.clear(); return this; } - for (int i = 0; i chars.size()) return false; @@ -156,4 +167,19 @@ public class String2 { public String toString() { return getSubString(0, chars.size()); } + + + public static String[] getGroups(String s, String regexp){ + Pattern pattern = Pattern.compile(regexp); + Matcher matcher = pattern.matcher(s); + + matcher.find(); + String[] result = new String[matcher.groupCount()]; + + for (int i = 0; i< result.length; i++){ + result[i] = matcher.group(i+1); + } + + return result; + } }