You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

StringUtils.java 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. * Copyright (C) 2012-present the original author or authors.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.pf4j.util;
  17. /**
  18. * @author Decebal Suiu
  19. */
  20. public class StringUtils {
  21. private StringUtils() {}
  22. public static boolean isNullOrEmpty(String str) {
  23. return (str == null) || str.isEmpty();
  24. }
  25. public static boolean isNotNullOrEmpty(String str) {
  26. return !isNullOrEmpty(str);
  27. }
  28. /**
  29. * Format the string. Replace "{}" with %s and format the string using {@link String#format(String, Object...)}.
  30. */
  31. public static String format(String str, Object... args) {
  32. str = str.replaceAll("\\{}", "%s");
  33. return String.format(str, args);
  34. }
  35. /**
  36. * <p>Adds a substring only if the source string does not already start with the substring,
  37. * otherwise returns the source string.</p>
  38. * <p/>
  39. * <p>A {@code null} source string will return {@code null}.
  40. * An empty ("") source string will return the empty string.
  41. * A {@code null} search string will return the source string.</p>
  42. * <p/>
  43. * <pre>
  44. * StringUtils.addStart(null, *) = *
  45. * StringUtils.addStart("", *) = *
  46. * StringUtils.addStart(*, null) = *
  47. * StringUtils.addStart("domain.com", "www.") = "www.domain.com"
  48. * StringUtils.addStart("abc123", "abc") = "abc123"
  49. * </pre>
  50. *
  51. * @param str the source String to search, may be null
  52. * @param add the String to search for and add, may be null
  53. * @return the substring with the string added if required
  54. */
  55. public static String addStart(String str, String add) {
  56. if (isNullOrEmpty(add)) {
  57. return str;
  58. }
  59. if (isNullOrEmpty(str)) {
  60. return add;
  61. }
  62. if (!str.startsWith(add)) {
  63. return add + str;
  64. }
  65. return str;
  66. }
  67. }